Python子类能否存放在与其父类不同的模块中
我写了一些代码,其中有一个主类和几个子类,这些子类从一个父类那里继承了变量。
比如:
class superclass(object):
def __init__(self, var1, var2):
self.var1 = var1
self.var2 = var2
class subclass1(superclass):
def method1(self):
pass
class subclass2(superclass):
def method1(self):
pass
主类没有展示,也没有展示一个选项工厂,它用来选择要调用的子类,但希望提供的信息已经足够了。
我想把这些类转换成独立的模块,这样可以被导入。预计未来还会写更多的子类,所以我在想是否可以把每个子类和父类保存为单独的模块,并且这些子类仍然能够使用父类的变量和定义。
这样做的原因是为了简化未来子类的编写。也就是说,它们可以作为独立的模块来编写,而之前的子类和父类在开发过程中不需要修改,但仍然可以使用父类的变量和定义。
我不太确定这样做是否可行,或者应该怎么做。是把所有的类保存为superclass.py、subclass1.py和subclass2.py,然后全部导入吗???
希望这样说清楚了。
谢谢。
8 个回答
2
当然,没问题。你只需要这样做:
import ModuleWithSuperclass
class subclass1(ModuleWithSuperclass.superclass):
def method1(self):
pass
5
是的,显然这是可能的——这就是Python的魅力所在!
模块 1
class base:
def p(self):
print "Hello Base"
模块 2
from module1 import base
class subclass(base):
def pp(self):
print "Hello child"
Python 解释器
from module2 import subclass
ob = subclass()
ob.p()
"Hello Base"
ob.pp()
"Hello child"
:)
15
是的,这完全是可能的。只要记得在子类的文件中导入父类就可以了:
from module_where_superclass_is import SuperClass
class SubClass(SuperClass):
def method1(self):
# ...