>>> min = "3.4.4"
>>> x = min(3, 4, 5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable
>>>
class MyCompileTool(object):
...
def compile(self):
min = "3.4.4"
x = min(1, 2)
# ^^^ "3.4.4".__call__(1, 2)
# This will throw exception because strings doesn't have __call__
x = min(3, 4)
# ^^^ __builtins__.min
在这种特殊情况下,可能不会出什么问题。您只是在方法中使用一个局部变量来跟踪
min
,所以您可能不会造成太大的损害。一般来说,你可以看到这样的情况:这可能会使您感到困惑,或者(更糟的是)它可能会使那些稍后必须进入并支持您的代码的人感到困惑。如果你在全球范围内这样做,情况会更糟,比如:
^{pr2}$总的来说,这是不好的做法。别这么做。在
您不必重写}的后续代码将包含对
min
这里,您只需创建一个min
本地,如果{min
的调用,则首选该方法:要在整个模块中隐藏
^{pr2}$min
,请在全局命名空间中执行此操作:有关如何在Python中解析名称的详细信息,请查看文档:4.1. Naming and binding
相关问题 更多 >
编程相关推荐