【发布时间】:2012-07-05 07:41:54
【问题描述】:
我创建了一个具有类型的类,因为我需要使用一个变量作为基础。
如果我不提供 __init__ 方法,它可以正常工作,但是当我提供一个时,我无法调用 base 的 __init__。
作品:
def constructor():
blah blah
api = importlib.import_module(xtype)
mc = type('mc', (api.aclass,), {})
obj = mv(**args)
return obj
不起作用,返回“SystemError: super(): __class__ cell not found”
def constructor():
blah blah
api = importlib.import_module(xtype)
mc = type('mc', (api.aclass,), dict(__init__ = mc__init)
obj = mc(**args)
return obj
def mc_init(*args, **kwargs):
do_some_stuff
super().__init__(*args, **kwargs)
不起作用,稍后在创建对象时返回“Base mc.__init__ not called.”:
def constructor():
global api
blah blah
api = importlib.import_module(xtype)
mc = type('mc', (api.aclass,), dict(__init__ = mc__init)
obj = mc(**args)
return obj
def mc_init(*args, **kwargs):
global api
do_some_stuff
api.aclass.__init__(*args, **kwargs)
x = constructor()
如何为基类调用 init?
谢谢。
【问题讨论】:
-
我强烈建议您将满意的答案标记为“已接受”(绿色复选标记)。你问了7个问题,没有一个被接受;这是不寻常的。如果人们知道他们可以解决你的问题,你就会激励他们回答。
标签: python-3.x metaclass