関数をスローする指定された名前に従って、その仕事が暗黙的にpythonクラスを生成する関数があります。その後、生成されたクラスにもフィールドとメソッドを暗黙的に作成したいと思います。どうすれば起動できるかわかりません。誰か助けてくれませんか...
user1724345
質問する
69 次
2 に答える
3
本当にクラスが必要ですか?実行時に作成される「タイプ」の場合、namedtupleが解決策になる可能性があります。
from collections import namedtuple
MyType= namedtuple("MyType", "field1 method1")
x = MyType(field1="3", method1=lambda x: x+1)
print x.field1, x.method1(3)
于 2013-01-10T08:48:52.100 に答える
2
次を使用して、次のようなことを試すことができますtype()
。
def my_func(self):
return 'my_func to become my_method!'
def class_maker(name,**kwargs):
return type(name, (object,), kwargs)
A = class_maker('MyClass',my_method=my_func, field='this is my_field!')
inst = A()
print inst.my_method()
print inst.field
print inst
print A
出力:
my_func to become my_method!
this is my_field!
<__main__.MyClass object at 0x962902c>
<class '__main__.MyClass'>
于 2013-01-10T08:46:33.140 に答える