如何将Python类溢出到不同子目录的多个文件中?

问题描述 投票:0回答:1

仅当这些文件位于同一目录中时,我才能将类定义拆分为多个文件:

# entrypoint.py

class C(object):

    from ImplFile import OtherMethod

    def __init__(self):
        self.a = 1

# ImplFile.py

def OtherMethod(self):
    print("a = ", self.a)

如果

ImplFile.py
文件位于子目录中,我会收到错误:

ModuleNotFoundError: No module named 'OtherMethod'

如何指定成员函数是在该文件中定义的?


我想将实现拆分为多个文件的原因是由于它的大小,无论是成员函数的数量还是它们的大小。

python subdirectory
1个回答
1
投票

正如 DeepSpaceTim Roberts 所提到的,这是非常糟糕的做法,主要是因为当你在没有任何解释或文档的情况下阅读代码时很难理解发生了什么。

如果您确实坚持继续使用相同的路径,只需在导入语句中的文件名之前添加子目录的名称即可:

from <subdirectory>.ImplFile import OtherMethod

但是,如果您希望继续使用更简洁的代码,那么您的情况下最好的选择可能是使用继承
您可以使用主文件中的基本属性和方法创建父类,然后使用附加方法/属性在其他文件/子目录中创建子类。

© www.soinside.com 2019 - 2024. All rights reserved.