python - 分配给打印功能
问题描述
我的一个朋友正在上 Python 教程课程并寻求帮助,因为她的代码没有按预期工作。
我能够立即确定问题并帮助她自己推断问题。代码是这样的。
myValue = 575.0
print=(myValue)
显然,打印失败。但是当我说它失败时,我只是说它没有打印任何东西。解释器仍然执行该行没有任何问题。所以,我的问题是,为什么赋值运算符不会引发语法错误?
解决方案
它不会引发错误,因为在 Python 3 中,print
它是一个常规函数。并且函数对象绑定到名称,print
引用特定函数对象的名称(“变量”)也是如此。
由于函数与变量没有什么不同,您可以随意重新分配它们:
def add(a, b):
return a + b
add = "ha-ha, I'm a string"
=
符号后面的括号是您在数学中使用的括号类型:
print = (1 + 2) # print == 3
名称后面的括号表示函数调用。
但现在print
坏了,你永远无法打印任何东西!不是真的 - 有一个副本__builtins__.print
:
print = __builtins__.print
但是,您可以很容易地搞砸:
__builtins__.print = 5
然而,在 Python 2 中,print
是一个语句,而不是一个常规函数,所以这会失败:
Python 2.7.16 (default, Dec 3 2019, 07:02:07)
>>> print = 5
File "<stdin>", line 1
print = 5
^
SyntaxError: invalid syntax
推荐阅读
- python - 在Django的一个视图中组合来自三个表的数据
- javascript - 加载内容后使加载器消失
- c# - 数字签名显示错误的签名日期
- angularjs - 如何从 json 获取数据以在 AngularJS 中查看
- css - 表头和脚可见,正文可滚动
- powershell - WebDAV 和 Powershell 和 Windows - 奇怪的错误和行为
- unity3d - 在具有统一方向的景观的场景之后,方向不适用
- php - php 简单的 html dom 和 iframe src
- apache-spark - 更改 BlockMatrix 的对角线元素
- python - Selenium、Python、chromedriver、systemd 不工作