为什么我不能再次调用这个函数?或者,我怎么才能做到呢?
假设我有这个函数:
def a(x, y, z):
if x:
return y
else:
return z我用以下方式调用它:
print a(3>2, 4, 5)我得4分。
但是假设我声明了一个与函数同名的变量(错误地):
a=2现在,如果我尝试这样做:
a=a(3>4, 4, 5)或者:
a(3>4, 4, 5)我会得到这样的错误:"TypeError:'int‘对象不可调用“
不能将变量'a‘赋值给函数吗?
发布于 2014-03-04 10:59:59
Python中的名称通常是特定类型的identifiers,更像是命名一个存储变量/函数/方法或Python语言中的任何对象的框。当您重新分配时,您只是重命名了一个框。
你可以通过下面的操作找到答案。
最初,在位置140515915925784为a分配了一个值9。只要我对一个函数使用相同的标识符,a就会在4512942512中引用一个包含该函数地址的框
将a重新分配给3会再次将a指向不同的地址。
>>> a = 9
>>> id(a)
140515915925784
>>> def a(x):
... return x
...
>>> id(a)
4512942512
>>> a
<function a at 0x10cfe09b0>
>>>
>>>
>>>
>>> a = 3
>>> id(a)
140515915925928
>>> a
3
>>>https://stackoverflow.com/questions/22161717
复制相似问题