相关疑难解决方法(0)

是否可以在Python中创建抽象类?

如何在Python中创建类或方法摘要?

我试着__new__()像这样重新定义:

class F:
    def __new__(cls):
        raise Exception("Unable to create an instance of abstract class %s" %cls)
Run Code Online (Sandbox Code Playgroud)

但是现在如果我创建一个G继承自F这样的类:

class G(F):
    pass
Run Code Online (Sandbox Code Playgroud)

然后我也无法实例化G,因为它调用了它的超类__new__方法.

有没有更好的方法来定义抽象类?

python inheritance abstract-class class abstract

268
推荐指数
6
解决办法
17万
查看次数

Python Metaclass:理解'with_metaclass()'

我想问一下这个with_metaclass()调用在一个类的定义中意味着什么.

例如:

class Foo(with_metaclass(Cls1, Cls2)):
Run Code Online (Sandbox Code Playgroud)
  • 是一个特殊的情况,一个类继承了元类?
  • 新类也是元类吗?

python metaclass six-python

48
推荐指数
2
解决办法
2万
查看次数

9
推荐指数
4
解决办法
2万
查看次数

在 Python 中调用函数之前检查该函数是否引发 NotImplementedError

我有以下简化方案:

class NetworkAnalyzer(object):
    def __init__(self):
       print('is _score_funct implemented?')

    @staticmethod
    def _score_funct(network):
        raise NotImplementedError

class LS(NetworkAnalyzer):
    @staticmethod
    def _score_funct(network):
        return network
Run Code Online (Sandbox Code Playgroud)

我正在寻找应该使用什么来print('is _score_funct implemented?')确定子类是否已经实现_score_funct(network)

注意:如果有一种更Pythonic/传统的方式来构造代码,我也将不胜感激。我这样定义它的原因是,一些 NetworkAnalyzer 子类在其定义中具有 _score_funct ,而那些没有它的子类将具有不同的变量初始化,尽管它们将具有相同的结构

python oop class python-3.x

6
推荐指数
1
解决办法
2752
查看次数