0

次の形式のメソッドがいくつかあります。

def p_methodone(a):
    pass

def p_methodtwo(a):
    pass

...

passを削除して、これらのメソッドにコードを入力したいと思いますa[0] = a[1]。リフレクションのようなものを使用してPythonで動的にこれを行うことは可能ですか? その理由は、私にはこれらのメソッドがたくさんa[0] = a[1]あり、後でコードが変更される可能性があるためです。(検索して置換するのではなく) 1 か所だけ変更する必要があると便利です。

(注:外部ライブラリはこれらの定義がこの形式であることに依存しているため、これらの定義を変更することはできません。)

4

2 に答える 2

0

ラムダ関数または別の関数で関数定義をオーバーライドできます

>>> 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 に答える