__子类使用多个py文件时的用法

2024-09-26 17:42:33 发布

您现在位置:Python中文网/ 问答频道 /正文

# test1.py
class DatabaseEngine(object):
    pass

# test2.py
from test1 import DatabaseEngine
class OracleEngine(DatabaseEngine):
    pass

# test3.py
from test1 import DatabaseEngine
class MysqlEngine(DatabaseEngine):
    pass

# test4.py
# try 1
from test1 import DatabaseEngine
print DatabaseEngine.__subclasses__() # returns empty list 

# try 2
from test2 import DatabaseEngine
from test3 import DatabaseEngine
print DatabaseEngine.__subclasses__() # returns [oracle, mysql]

为什么#try1无法识别子类,而#try 2识别其子类。你知道吗

我想在test4.py中使用\uuuuuuu子类()\uuuuu,而不做

from test2 import DatabaseEngine
from test3 import DatabaseEngine

有办法吗?你知道吗


Tags: frompyimportobjectpass子类classreturns
1条回答
网友
1楼 · 发布于 2024-09-26 17:42:33

Try 1不起作用b/c导入显式计算该模块中的代码。在try 1中不导入包含子类的模块,因此不会对它们进行求值。你知道吗

如果您选择将子类保留在不同的模块中,并希望访问所有子类,那么必须至少有一个模块将它们全部导入。你知道吗

我建议创建另一个包含子类实现的文件,将它们导入其中,然后在需要子类时,导入这个文件。你知道吗

相关问题 更多 >

    热门问题