gpt4 book ai didi

python用实例方法覆盖类方法

转载 作者:太空狗 更新时间:2023-10-30 01:16:56 27 4
gpt4 key购买 nike

我在我的代码中遇到了一个错误,其中隐藏了一个覆盖方法,因为我忘记了 @classmethod 装饰器。我在徘徊是否有可能以另一种方式强制执行(注意这可能是糟糕的设计)但类似的东西:

 class Super:

@classmethod
def do_something(cls):
...

class Child:
def do_something(self):
...

obj = Child()
obj.do_something() #calls the child
Child.do_something() #calls the Super method

编辑:目前没有具体案例,但我正在徘徊是否可以假设完成。

最佳答案

作为一个纯假设的应用程序,这可能是一种方式:

class Super:
@classmethod
def do_something(cls):
print('Super doing something')

class Child(Super):
def __init__(self):
self.do_something = lambda: print('Child Doing Something')

例子:

>>> obj = Child()
>>> obj.do_something()
Child Doing Something
>>> Child.do_something()
Super doing something
>>> obj.do_something()
Child Doing Something

关于python用实例方法覆盖类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281641/

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