Pythonで私ができること:
exec(code_string, globals(), some_object.__dict__)
メソッドをオブジェクトに追加します。ある種の同様の方法でクラスに静的メソッドを追加することは可能ですか? お気に入り:
exec(code_string, globals(), ClassName.__dict__)
次に、メソッドを静的に呼び出すことができるようにします。
ClassName.some_static_method()
私がやろうとしているのは、メソッドを定義するいくつかの python コードを指定して、実行時に新しい staticmethods を追加することです。つまり、私が与えられた場合:
code_string = '''
@staticmethod
def test():
return 'blah'
'''
これを作成してクラスにインスタンス化して、呼び出すことができるようにするにはどうすればよいですか?
うまくいけば、私は十分に明確でした、ありがとう!
編集: オブジェクトに関数を追加する実際の例:
class TestObject(object):
pass
code_string = '''
def test():
return 'blah'
'''
t = TestObject()
exec(code_string, globals(), t.__dict__)