【发布时间】:2013-08-02 06:36:46
【问题描述】:
我有许多方法,格式如下:
def p_methodone(a):
pass
def p_methodtwo(a):
pass
...
我想删除pass 并使用代码a[0] = a[1] 填充这些方法。是否可以在 Python 中使用反射之类的东西动态地做到这一点?原因是我有很多这些方法,并且代码a[0] = a[1] 稍后可能会更改 - 最好只在一个地方更改它(而不是进行搜索)并替换)。
(注意:我无法以任何方式更改这些定义,因为外部库依赖于它们的这种格式。)
【问题讨论】:
-
程序的其他部分是否可能引用了您希望更改的功能?如果是这样,在像 sfk 和 Rustam 建议的那样重新绑定名称后,这些部分仍将具有旧功能。谈话Don't Do This: Some things you should never do in python 中提出了即使在这种情况下也应该有效的解决方案。它涉及弄乱
__code__属性。当然,这只是学术兴趣,因为您不应该这样做。 :)
标签: python reflection introspection