我运行了这段代码,便能够将值分配给保留关键字。为什么python为什么允许对保留关键字的赋值语句,或者我做错了什么?
屏幕截图 https://imgur.com/a/l2yoSoh
int = 7 打印(int) 7 :
int(int)
错误
TypeError跟踪(最近一次通话) 在()中 ----> 1个int(int)
TypeError:“ int”对象不可调用
答案 0 :(得分:5)
int
不是保留关键字,它只是内置函数的名称。
答案 1 :(得分:0)
保留关键字和内置实例之间是有区别的。
诸如int
,str
和float
之类的建筑实际上只是常用的类。可以重新分配/覆盖类,这正是您通过编写int = 7
所做的事情。
诸如as
,if
和while
之类的关键字是非常特殊的标识符。这些不能被覆盖。如果您尝试写as = 10
,则会得到SyntaxError
。
这是导致错误的原因:首先,您给int
赋予了值7
。这是完全合法的,因为可以重新分配内建函数。完成此操作后,键入int(int)
就像键入7(7)
。 7
不能像函数一样调用,因此会导致TypeError
。
答案 2 :(得分:0)
如果使用像pyCharm这样的IDE,则如果您的变量之一与内置变量或关键字共享名称,则会发出警告。