gpt4 book ai didi

python - 能够实例化 python 类,尽管它是抽象的(使用 abc)

转载 作者:太空狗 更新时间:2023-10-29 22:15:57 29 4
gpt4 key购买 nike

这是关于 this question 的答案的引用到“使用 python 的 abc 模块创建抽象类。” (@alexvassel 并接受为答案)。

我尝试了这些建议,但奇怪的是,尽管遵循了使用 abc 方式的建议,但它对我不起作用。因此,我将其作为问题发布在这里:

这是我的 Python 代码:

from abc import ABCMeta, abstractmethod

class Abstract(object):
__metaclass__ = ABCMeta

@abstractmethod
def foo(self):
print("tst")

a = Abstract()
a.foo()

当我执行这个模块时,控制台输出如下:

pydev debugger: starting (pid: 20388)
tst

与接受的答案相反

>>> TypeError: Can not instantiate abstract class Abstract with abstract methods foo

那么我做对了还是做错了?为什么工作而不失败?感谢对此的任何专家见解。

最佳答案

在 Python 3 中,创建抽象基类时使用 metaclass 参数:

from abc import ABCMeta, abstractmethod

class Abstract(metaclass=ABCMeta):

@abstractmethod
def foo(self):
print("tst")

a = Abstract()
a.foo()

关于python - 能够实例化 python 类,尽管它是抽象的(使用 abc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235112/

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