gpt4 book ai didi

python - 当一个类派生自 Python 中的特定父类时,有没有办法让代码运行?

转载 作者:行者123 更新时间:2023-11-28 22:49:13 25 4
gpt4 key购买 nike

例如,如果我创建类 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 中执行此操作?如果重要的话,我会使用 Python 3。

注意:在我的真实代码中,Foo实际上是一个抽象基类。

编辑:我还需要访问 myCode() 中的派生类成员数据和方法。

最佳答案

使用 metaclass :

class MetaClass:
def __init__(cls, name, bases, dictionary):
if name is not 'Parent':
print('Subclass created with name: %s' % name)
super().__init__(name, bases, dictionary)

class Parent(metaclass=MetaClass):
pass

class Subclass(Parent):
pass

输出:

Subclass created with name: Subclass

元类控制类本身的创建方式。子类从父类继承其元类,因此该代码在定义时运行。

编辑:至于您使用抽象基类的用例,我认为您只需要将您的元类定义为 ABCMeta 的子类,但我没有对此进行测试。

关于python - 当一个类派生自 Python 中的特定父类时,有没有办法让代码运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24112876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com