尝试实现抽象方法时,进程已完成,退出代码为 -1073741571 (0xC00000FD)

问题描述

我正在尝试使用 @abstractmethod 装饰器和子类来实现一个类。在我看到的例子中,abstractmethod 中总是只有单词 pass 来表示抽象类。然而,我想要做的是拥有一个实际上具有功能的抽象方法,但是在子类中分配了几个自由变量:

from abc import ABC,abstractmethod


class Animal(ABC):
    def __init__(self,name=''):

        self.name = name

    @abstractmethod
    def do_something(self,sound,move):
        print('open mouth and ' + sound)
        print('advance by ' + move)


class Dog(Animal):
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)

    def do_something(self,**kwargs):
        return self.do_something(self,sound='bark',move='moving legs')

如果我应用这个,我会得到:

MyDog = Dog('Charly')
MyDog.name

'查理'

到目前为止,一切都很好。

MyDog.do_something()

进程完成,退出代码 -1073741571 (0xC00000FD)

当然,我对抽象类的理解有问题(第一次这样做)。 有人可以向我解释发生了什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)