首页IT科技抽象类可以有子类(抽象类的子类化机制)

抽象类可以有子类(抽象类的子类化机制)

时间2025-06-17 18:08:41分类IT科技浏览4129
导读:抽象类:可以作为顶层基类,从高层次规范编程接口 1、在abc模块中,最常见的抽象类有Iterable,我们可以用他判断一个对象是不是可迭代对象...

抽象类:可以作为顶层基类            ,从高层次规范编程接口

1            、在abc模块中                 ,最常见的抽象类有Iterable     ,我们可以用他判断一个对象是不是可迭代对象

output:

  True

2                 、抽象类的子类化机制

  2.1     、重写__subclasshook__类方法         ,定制抽象类的子类判断逻辑                  ,这种子类化形式只关心结构        ,不关心真实的继承关系      ,称之为:结构化子类

1 import abc 2 3 4 class A(abc.ABC): 5 @classmethod 6 def __subclasshook__(cls, c): 7 if any("verify" in b.__dict__ for b in c.__mro__): 8 return True 9 return False 10 11 12 class Valley: 13 def __init__(self): 14 ... 15 16 def verify(self): 17 print(1) 18 19 20 if __name__ == "__main__": 21 print(isinstance(Valley(), A))

output:

  True

  2.2         、继承抽象基类元类register方法直接注册

1 import abc 2 3 4 class A(abc.ABC): 5 ... 6 7 8 class Valley: 9 def __init__(self): 10 ... 11 12 def verify(self): 13 print(1) 14 15 16 A.register(Valley) 17 if __name__ == "__main__": 18 print(isinstance(Valley(), A))

目前未找到合适的应用场景                  ,希望知晓的可以在下面写个小demo           ,我参考参考

声明:本站所有文章   ,如无特殊说明或标注                  ,均为本站原创发布           。任何个人或组织              ,在未征得本站同意时,禁止复制                  、盗用        、采集      、发布本站内容到任何网站                  、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益               ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
iconhandler(icon.exe是什么进程 有哪些用处 icon进程查询) 网站排名好却没有流量?这是为什么!(了解流量来源,让你的网站排名不再孤单!)