我安装了一个python包(schematic),它有许多从基类扩展而来的类。你知道吗
class BaseType(object):
def __init__(self, required=False, default=None ...)
...
class StringType(BaseType):
...
class IntType(BaseType):
...
我希望能够修改BaseType类,这样它就可以接受额外的构造函数变量。你知道吗
我知道我可以基于这些定义自己的类,但我想知道Python中是否真的有方法只修改基类?你知道吗
谢谢你,本
你当然可以。只要做
BaseClass.__init__ = your_new_init
。但是,如果BaseClass
是在C
中实现的,这就行不通了(我相信您不能可靠地更改用C实现的类的特殊方法;您可以自己用C编写)。你知道吗我相信你想做的是一个巨大的黑客,那只会引起问题,所以我强烈建议你不要替换你甚至没有写的基类。你知道吗
举个例子:
您可能可以编辑定义基类的源文件,或者制作包的副本并编辑特定项目的源文件。你知道吗
另见:How do I find the location of my Python site-packages directory?
相关问题 更多 >
编程相关推荐