0

我有许多具有以下格式的方法:

def p_methodone(a):
    pass

def p_methodtwo(a):
    pass

...

我想删除pass并用代码填充这些方法a[0] = a[1]。是否可以在 Python 中使用反射之类的东西动态地做到这一点?原因是我有很多这些方法,并且代码a[0] = a[1]可能稍后会更改 - 只需要在一个地方更改它会很好(而不是进行搜索和替换)。

(注意:我不能以任何方式更改这些定义,因为外部库依赖于它们采用这种格式。)

4

2 回答 2

1

改用 lambda!

y = lambda a: a[0] = a[1]
y([1, 2, 3])
于 2013-08-02T06:46:37.100 回答
0

您可以使用 lambda 函数或其他函数覆盖函数定义

>>> def newdef(a): return a+1
... 
>>> p_methodone = newdef
>>> p_methodone(10)
11

>>> def newdef(a): return a+2
... 
>>> p_methodone = newdef
>>> p_methodone(10)
12
于 2013-08-02T06:50:44.167 回答