问题标签 [abc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 字符串的ABC?
我最近在集合中发现了抽象基类 (ABC),并且喜欢它们清晰、系统的方法和 Mixin。现在我还想创建自定义字符串 (*),但我找不到字符串的 ABC。
有UserString,但不鼓励UserDict!?从 str 本身派生将没有 Mixins?您将如何在覆盖的方法中访问字符串的“数据”部分?
我在某个地方看到了从 Sequence 和 Hashable 派生的建议,但后来我写不出来if 'test' in my_string:
?!
您推荐哪种方法?
(*) 原因是: - 编写以内部定义的方式排序的字符串 - 生成字符串(作为枚举的一部分),当与枚举范围之外的值进行比较时会引发错误
python - python @abstractmethod 装饰器
我已经阅读了关于抽象基类的 python 文档:
从这里:
abc.abstractmethod(function)
指示抽象方法的装饰器。使用这个装饰器需要类的元类是
ABCMeta
或派生自它。ABCMeta
除非重写其所有抽象方法和属性,否则无法实例化具有派生元类的类。
在这里
您可以将
@abstractmethod
装饰器应用于必须实现的方法,例如draw();然后,Python 将为未定义该方法的类引发异常。请注意,仅当您实际尝试创建缺少该方法的子类的实例时才会引发异常。
我已经使用此代码进行了测试:
代码很好,所以我不明白。如果我输入c.abstractMethod
,我会得到:
我在这里缺少什么?ConcreteClass
必须实现抽象方法,但我也不例外。
python - 如何从超类方法调用 python 子类方法?
我有以下类型的超类/子类设置:
我希望 SuperClass init 始终调用尚未实现的 do_something 方法。我正在使用python 2.7。也许 ABC 可以做到这一点,但还有其他方法吗?
谢谢。
python - 将 abc 子类化的 django 模型会产生元类冲突
我有一个以下模型和抽象基类
但我收到以下错误。
元类冲突:派生类的元类必须是其所有基类的元类的(非严格)子类
我认为这里的问题是(正如这里描述的http://code.activestate.com/recipes/204197-solving-the-metaclass-conflict/)两个基类有两个不同的元类,所以python无法决定哪个元类用于子对象。
为了解决这个问题,我删除了多重继承并使用以下注册方法来注册子类
但我不太喜欢这种方法,因为它看起来像猴子补丁。
有没有其他方法可以解决这个问题?
我尝试将模型元类显式分配给 Child,但它不起作用。我不是在寻找通过编写代码来解决它的方法。我认为这必须通过改变我的班级结构来解决。
python - 从覆盖报告中排除抽象属性
我有一个抽象基类:
但是当我在我的项目上运行nosetests(覆盖范围)时,它抱怨属性def行未经测试。它实际上无法测试(AFAIK),因为抽象类的实例化将导致引发异常。
是否有任何解决方法,或者我只需要接受 < 100% 的测试覆盖率?
当然,我可以删除这种ABCMeta
用法并简单地使用基类 raise NotImpementedError
,但我更喜欢前一种方法。
python - Python - 测试一个抽象基类
我正在寻找抽象基类中定义的测试方法的方法/最佳实践。我能直接想到的一件事是对基类的所有具体子类执行测试,但有时这似乎过分了。
考虑这个例子:
是否可以在bar
不进行任何子类化的情况下进行测试?
android - 暂停在android中的音频播放器中
我有一个严重的问题。我研究了两天,但我无法解决。当我运行我的应用程序时,我收到一个错误。
逻辑猫…………
python - Python ABC 似乎允许不完整的实现
我正在尝试创建基类并强制所有子类实现它的接口。我abc
为此目的使用该模块。
这是基类:
这是孩子:
本次测试:
产生以下结果:
不要抱怨不完整的实施!
所以我的问题是抽象基类是否不是真正抽象的。如果它们不是,那么是否有某种方法可以进行健壮的打字?
注意:我已经命名了示例类PluginBase
并CompletePlugin
表明我需要确保客户端类实现正确的接口。
我试过派生PluginBase
自object
,但这没有区别。我正在使用 Python 2.7.1
任何帮助将不胜感激。
python - collections.MutableSequence 子类似乎是单例的?
python - 可听写类的 Python 成语?
我想做这样的事情:
有没有更蟒蛇的方式来做到这一点?例如,是否可以重载内置转换dict(...)
?请注意,我不一定要返回 的所有成员变量Foo
,我宁愿让每个类决定返回什么。
谢谢。