像下面的例子那样改变对象的__name__
属性的值是否正确:
>>>
>>> def f(): pass
...
>>> f.__name__
'f'
>>> b = f
>>> b.__name__
'f'
>>> b.__name__ = 'b'
>>> b
<function b at 0x0000000002379278>
>>> b.__name__
'b'
>>>
最佳答案
更改函数的名称不会使新名称可调用:
>>> def f(): print 'called %s'%(f.__name__)
...
>>> f()
called f
>>> f.__name__ = 'b'
>>> f()
called b
>>> b()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
您必须定义 b
才能调用它。如您所见,简单地分配 b=f
并没有定义新函数。
关于python - 我可以在 python 中更改对象的 __name__ 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034327/