我知道可以通过这种方式替换 buildin 函数。
>>> import os
>>> print(os.system)
<built-in function system>
>>> os.system = "a"
>>> print(os.system)
a
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我不能os.system直接用源代码编写。然后我尝试了getattr。但它不起作用。
>>> import os
>>> print(getattr(os, "system"))
<built-in function system>
>>> getattr(os, "system") = "a"
File "<stdin>", line 1
SyntaxError: can't assign to function call
Run Code Online (Sandbox Code Playgroud)
这有可能实现吗?
getattr只获得一个属性。除此之外,错误表明函数调用不是有效的赋值目标。
你想要的是setattr:
>>> import os
>>> os_system = os.system
>>> setattr(os, 'system', 'a')
>>> getattr(os, 'system')
'a'
>>> setattr(os, 'system', os_system)
>>> getattr(os, 'system')
<built-in function system>
Run Code Online (Sandbox Code Playgroud)
我确实希望你有充分的理由这样做。
| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |