
新手求教 python3 问题
我希望获去 A 的子类 Info 按照逻辑 A 继承了 ABC ,Info 继承了 A,那 Info 既是 A 的子类也是 ABC 的子类, 但是实际结果却是 Info 是 ABC 的子类却不是 A 的子类,求解
因为实际业务中我有很多子类需要继承 A,都写在一个文件里面就很臃肿,所以并不希望使用第二种情况
希望大家帮忙看下是啥问题,或者有什么方式能实现我的逻辑 逻辑为:在 A 中能获取他所有的子类并且能调用子类的方法
python 我是新手,比较菜,大佬勿喷哈
main/alfred/file/A.py
#!/usr/local/bin/python3 # coding=utf-8 from abc import ABC, abstractmethod import importlib, inspect from main.alfred.file import Info class A(ABC): result = None class B(A): result = None if __name__ == '__main__': info_info = Info.Info subclass = issubclass(info_info, A) subclass2 = issubclass(info_info, ABC) print("info extend A %s" % subclass) print("info extend ABC %s " % subclass2) subclass3 = issubclass(B, A) subclass4 = issubclass(B, ABC) print("B extend A %s" % subclass3) print("B extend ABC %s " % subclass4) 包路径 main/alfred/file/Info.py
#!/usr/local/bin/python3 # coding=utf-8 from main.alfred.file.A import A class Info(A): result = None 输出结果
Connected to pydev debugger (build 203.7148.57) info extend A False info extend ABC True B extend A True B extend ABC True 1 ll5270 2023 年 4 月 7 日 你这不会循环引用吗? |
2 Anarchy 2023 年 4 月 7 日 via Android 我觉得你先说清楚你想要的效果吧,感觉核心问题和继承没关系你需要一些设计模式来解决。 |
3 xurunfei OP |
4 xurunfei OP 我想要的功能是比较简单,就是 a 是父类 b c d 是子类,我要在 a 中直接通过一个方法获取 b c d 所有类并调用他们的方法 |