例如,如果我创建类Foo,然后派生子类Bar,我希望Foo的myCode()方法运行。你知道吗
class Foo(object):
x = 0
def __init__(self):
pass
def myCode(self):
if(self.x == 0):
raise Exception("nope")
class Bar(Foo): #This is where I want myCode() to execute
def baz(self):
pass
这应该在类从基类Foo派生的任何时候发生。在Python中可以这样做吗?如果重要的话,我会使用python3。你知道吗
注意:在我的实际代码中,Foo实际上是一个抽象基类。你知道吗
编辑:我还需要访问myCode()
中的派生类成员数据和方法。你知道吗
希望此代码能帮助您:
测试:
这样做有效:
输出:
如果有人想评论这是否合适,这是我的特定用例:
使用metaclass:
输出:
元类控制类本身的创建方式。子类从父类继承它的元类,因此当定义它时,代码就会运行。你知道吗
编辑:对于抽象基类的用例,我想您只需要将元类定义为ABCMeta的子类,但我没有测试它。你知道吗
相关问题 更多 >
编程相关推荐