Python 重写父类中使用的类
假设有一个类Python 重写父类中使用的类,python,python-3.x,oop,inheritance,namespaces,Python,Python 3.x,Oop,Inheritance,Namespaces,假设有一个类NiceClass在我无法编辑的地方使用另一个类LesserClass # NiceClass.py class LesserClass: ... # stuff ... class NiceClass: ... # Lots of use of lesser class in here... ... 现在,我想在继承的NiceClass版本中使用我自己的类MyLesserClass,而不是LesserClass # MyNice
NiceClass
在我无法编辑的地方使用另一个类LesserClass
# NiceClass.py
class LesserClass:
...
# stuff
...
class NiceClass:
...
# Lots of use of lesser class in here...
...
现在,我想在继承的NiceClass
版本中使用我自己的类MyLesserClass
,而不是LesserClass
# MyNiceClass.py
from NiceClass import NiceClass
from NiceClass import LesserClass as oldLesserClass
class LesserClass(oldLesserClass):
...
# Some extra stuff
...
class MyNiceClass(NiceClass):
...
# Everywhere LesserClass was used I now want to use MyLesserClass
...
但是MyNiceClass
中所有未重写的方法都将使用旧NiceClass.py
中的LesserClass
如果我只是将粘贴在NiceClass
的整个定义中的内容复制到MyNiceClass.py
中,一切都会正常工作
就像我只想继承源代码,而不是整个名称空间。也许继承是错误的方法?我希望这仅限于
NiceClass
下使用类LesserClass
的方法
现在,如果您想让MyNiceClass
中的方法使用MyLesserClass
而不是LesserClass
,那么您可以更新这些方法的\uuuglobals\uuucode>dict,并使名称'LesserClass'
指向MyLesserClass
下面是一个简单的示例,通过覆盖以下内容来演示这一点:
输出:
C.a
C.b
你的问题还不清楚。请尽量提供更清晰的信息。你的期望和问题是什么?
C.a
C.b