当前位置: 首页>>代码示例>>Python>>正文


Python abc.abstractclassmethod方法代码示例

本文整理汇总了Python中abc.abstractclassmethod方法的典型用法代码示例。如果您正苦于以下问题:Python abc.abstractclassmethod方法的具体用法?Python abc.abstractclassmethod怎么用?Python abc.abstractclassmethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在abc的用法示例。


在下文中一共展示了abc.abstractclassmethod方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_abstractclassmethod_basics

# 需要导入模块: import abc [as 别名]
# 或者: from abc import abstractclassmethod [as 别名]
def test_abstractclassmethod_basics(self):
        @abc.abstractclassmethod
        def foo(cls): pass
        self.assertTrue(foo.__isabstractmethod__)
        @classmethod
        def bar(cls): pass
        self.assertFalse(getattr(bar, "__isabstractmethod__", False))

        class C(metaclass=abc.ABCMeta):
            @abc.abstractclassmethod
            def foo(cls): return cls.__name__
        self.assertRaises(TypeError, C)
        class D(C):
            @classmethod
            def foo(cls): return super().foo()
        self.assertEqual(D.foo(), 'D')
        self.assertEqual(D().foo(), 'D') 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:19,代码来源:test_abc.py

示例2: test_abstractmethod_integration

# 需要导入模块: import abc [as 别名]
# 或者: from abc import abstractclassmethod [as 别名]
def test_abstractmethod_integration(self):
        for abstractthing in [abc.abstractmethod, abc.abstractproperty,
                              abc.abstractclassmethod,
                              abc.abstractstaticmethod]:
            class C(metaclass=abc.ABCMeta):
                @abstractthing
                def foo(self): pass  # abstract
                def bar(self): pass  # concrete
            self.assertEqual(C.__abstractmethods__, {"foo"})
            self.assertRaises(TypeError, C)  # because foo is abstract
            self.assertTrue(isabstract(C))
            class D(C):
                def bar(self): pass  # concrete override of concrete
            self.assertEqual(D.__abstractmethods__, {"foo"})
            self.assertRaises(TypeError, D)  # because foo is still abstract
            self.assertTrue(isabstract(D))
            class E(D):
                def foo(self): pass
            self.assertEqual(E.__abstractmethods__, set())
            E()  # now foo is concrete, too
            self.assertFalse(isabstract(E))
            class F(E):
                @abstractthing
                def bar(self): pass  # abstract override of concrete
            self.assertEqual(F.__abstractmethods__, {"bar"})
            self.assertRaises(TypeError, F)  # because bar is abstract now
            self.assertTrue(isabstract(F)) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:29,代码来源:test_abc.py

示例3: __init__

# 需要导入模块: import abc [as 别名]
# 或者: from abc import abstractclassmethod [as 别名]
def __init__(self, callable):
            callable.__isabstractmethod__ = True
            super(abstractclassmethod, self).__init__(callable) 
开发者ID:allegroai,项目名称:trains,代码行数:5,代码来源:py3_interop.py


注:本文中的abc.abstractclassmethod方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。