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