我嘗試了幾種方法來改變定義中的函數名稱,但是失敗了。可能在定義中更改函數名稱?
>>> def f():
pass
>>> f.__name__
'f'
>>> def f():
f.__name__ = 'new name'
>>> f.__name__
'f'
>>> def f():
self.__name__ = 'new name'
>>> f.__name__
'f'
但是我可以在定義它之後改變名稱屬性。
>>> def f():
pass
>>> f.__name__ = 'new name'
>>> f.__name__
'new name'
任何方式來改變/設置它的定義(除了使用裝飾)?
「self .__ method __()」不起作用的原因是因爲'self'是從解釋器傳遞給參數的參數。沒有機制將實例傳遞給你的函數。 (順便說一句,變量名不一定是'self',它可以是'foo'或'bar'或其他) –
您是否正在編寫用於工作安全性的代碼? :) –