无论论据有多好,进入味觉讨论或任何被认为是这样的讨论通常都是浪费时间。

除了更一般的原则外,我更希望将赋值用作表达式的实际原因是,当我想将具有多个模式(提取子模式)的字符串匹配到成功之前,具有与case语句相同的可读性。 也许有人有一个不错的解决方案,我没有看到。

无论如何...为什么不通过在模块文件的开头通过可解释的注释使两个世界都可用而使所有人高兴,该注释明确指出了如果程序员愿意的话,可以将赋值用作表达式?

对当前情况感到满意的人们不会看到任何变化,并且仍然会以相同的方式检测到语法错误。

想要使用赋值作为表达式的人将只需要这样说。

我不认为允许在不使用赋值的现有程序中使用赋值作为表达式(通过简单地添加上面建议的注释)会改变该程序的语义。

和平。

脚本后-在下面的讨论的第1节的前五个段落已发布之后,添加了此内容。

我不知道为什么Python设计师会做出这样的选择。 避免公认的常见错误a = b = c而不是a = b==c是几乎没有道理。

首先,可以很容易地避免使用另一种表示法分配,例如2945888983697589589或2945888983697589589249,自分配以来更合适不是对称的,并且在某些Python的早期祖先中使用过。

其次,在另一个环境中可以容忍相同的问题。 一罐写a = b = c而实际上是写a = b==c很不一样。 并且当b和c时该错误不是可见的是大表情。 此外,虽然可能是如果语言是静态类型,则检测为类型错误,这是在像Python这样的动态类型语言中并不是这样(这是实际上在所有情况下都适用于=与==)。

这种容忍度更令人惊讶,因为a = b = c的形式几乎不是该语言的基本特征,几乎不是一个非常有用的功能。

看起来像早期设计决策的残余,有些是出于动机与现有语言(例如C或Bash)的相似之处,因为Python也是一种脚本语言,但不仅如此。 在换句话说,这似乎比经过深思熟虑的设计更为偶然。希望这不是人们谈论时所想到的pythonicity。

话虽这么说,但这些语法限制很小,但是很烦人。总体而言,该语言的设计似乎更好(有些精神上的限制)关于范围规则,直到我下定决心确定其逻辑为止)。

此讨论的一个有趣的方面是禁止作为表达式的赋值(尽管可以用符号来解决由于没有静态类型,因此也有必要进行更改)。但是可以预料,没有静态类型,这是一个合理的设计选择,使很多错误很难发现。 这是一个非常普遍的观察。 不过,这是由Python设计师。 就这样吧。

但是,他们很难不感到平等与任务将更难掌握。 这只是直接的结果,他们的设计选择具有更多灵活性的众多结果之一错误检测的费用。 因此错误检测是一个不好的借口对于此分配限制。

关于表达式分配将混合功能的事实和命令式风格,这不是问题。 混合已经语言中的任何地方。

是否有Python的书面理由来概括说明设计选择,尤其是此处讨论的问题?

python 声明不赋值_为什么Python赋值不返回值?相关推荐

  1. python网络编程证书_《Python网络编程基础》笔记

    python网络编程基础 ================== Author: lujun9972 Date: 2013-03-08 22:29:20 CST Table of Contents == ...

  2. python os.system重定向stdout到变量 ,同时获取返回值

    python os.system重定向stdout到变量 ,同时获取返回值 Python执行系统命令的方法 os.system(),os.popen(),commands 最近在做那个测试框架的时候发 ...

  3. python给矩阵赋值_解决Python二维数组赋值问题

    解决Python二维数组赋值问题 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值.因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个 ...

  4. python字符串赋值_【python】字符串变量赋值时字符串可用单或双引号

    >>> name='萧峰' >>> print(name) 萧峰 >>> name="独孤求败" >>> p ...

  5. python元组赋值_【Python】元组的基本使用

    上一节: 不知道你们上节课的代码,有没有好好研究,真的很有趣,你也可以举一反三.今天我们就来学"元组". 元组与列表相似,不同的是元组的内容是不能改变的.他们格式也不一样,列表使用 ...

  6. python大牛 关东升_《Python从小白到大牛》第4章 Python语法基础

    本章主要为大家介绍Python的一些语法,其中包括标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 标识符和关键字 任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍Pyth ...

  7. python数据类型定义为_一Python 数据类型

    变量.字符编码 1:声明变量: #_*_coding:utf-8_*_ #__author__:"shikai" name="shikai" #变量名:name ...

  8. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  9. python大牛自学心得_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...

    2019-09-20-23:24:15 今天逛论坛.逛知识星球时.逛b站up主时,都说到低学历,非科班的人最好不要去自学python 他们都说:如果我们学python是为了找工作,最好不要把pytho ...

  10. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

最新文章

  1. request.getParameterMap()的坑
  2. python中的几种copy用法_Python3中copy模块常用功能及其他几种copy方式比较
  3. React-Native系列Android——Native与Javascript通信原理(一)
  4. sink xxx does not exist
  5. run()方法和start()方法测试解析
  6. 深入JVM——OOM异常解析
  7. ExtJS6 Grid的日期编辑栏位处理
  8. WAV音频文件结构及录制
  9. 并发编程学习之线程池工作原理
  10. 为什么做了梦第二天想不起来_做过的梦为什么总是想不起来?
  11. 数据库 习题答案 系统概念 第七章
  12. linux中c语言kbhit函数用法,检测按键(Linux中kbhit()函数的实现)
  13. mysql查询bom清单,ORACLE ERP导数据(BOM清单)-数据库专栏,ORACLE
  14. VO、DTO、BO、QO、DO 如何使用,在那一层使用,一张图告诉你;别再纠结命名规则啦,我来告诉你
  15. 合格前端系列第十弹-揭秘组件库一二事
  16. 【华为OD机试真题 C++】数字涂色 【2022 Q4 | 100分】
  17. 9、XAML名称空间详解
  18. MPEGl和MPEG2数字视频编码标准
  19. pdf怎么转换成ppt?可以试试这三个方法
  20. JavaScript 性能优化杀手

热门文章

  1. 25GbE可以解决数据中心过载问题吗?
  2. 程序员摆脱疲劳的 11 个建议
  3. Windows2003 安装MVC4 环境的步骤
  4. Oracle中的Date、TimeStamp和Interval(上)
  5. Smarty的入门使用
  6. 在linux系统下挂接(mount)光盘镜像文件、移动硬盘、U盘以及Windows网络共享和UNIX...
  7. 应用管理系列 — 怎么管理Sybase数据库
  8. 二叉树翻转(递归 + 非递归)
  9. C/C++代码调试:快速定位内存的申请和释放的位置
  10. MySQL8.0.11的安装和Navicat连接mysql