为了账号安全,请及时绑定邮箱和手机立即绑定

分配给打印功能

分配给打印功能

汪汪一只猫 2022-10-18 17:51:12
我的一个朋友正在上 Python 教程课程并寻求帮助,因为她的代码没有按预期工作。我能够立即确定问题并帮助她自己推断问题。代码是这样的。myValue = 575.0 print=(myValue)显然,打印失败。但是当我说它失败时,我只是说它没有打印任何东西。解释器仍然执行该行没有任何问题。所以,我的问题是,为什么赋值运算符不会引发语法错误?
查看完整描述

2 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

通过这样做进行实验:


my_value = 575.0

print = (my_value)

print(print)

请注意,您收到以下错误:


Traceback (most recent call last):

  File "C:/Users/jchca/PycharmProjects/Josepe_project/Josepe/Practice10.py", line 4, in <module>

    print(print)

TypeError: 'float' object is not callable

本质上,她重写了 print 函数,因此print现在充当浮点值(这是在 Python 3.x 中)


查看完整回答
反对 回复 2022-10-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

它不会引发错误,因为在 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


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信