我目前正在移植一个相当大的 Perl 问题是它使用小的 Perl 技巧来使其代码可用于use
ing。我对 Python 做了同样的事情,使代码库成为一个大模块import
。我已经牢牢掌握 Python 很长时间了,但是我没有使用 Python 编写的大型项目的经验,这些项目需要在保持内部状态的同时访问自身的其他部分。
我还没有尝试将整个内容简单地导入一行 ( import core
),但我知道我目前没有以最好的方式做事。这是主脚本中的一个示例,它设置了所有内容:
self.Benchmark = Benchmark(self)
self.Exceptions = Exceptions
self.Settings = Settings(self)
self.Cache = Cache(self)
self.Deal = Deal(self)
self.Utils = Utils(self)
self.FileParsers = FileParsers(self)
self.Network = Network(self)
self.Plugins = Plugins(self)
self.Misc = Misc(self)
它有效,但我对此不满意。现在,主类脚本导入core
模块的每个部分并创建包含的类的实例,将自身作为参数传递给__init__
这些类。像这样:
class FileParsers:
def __init__(self, parent):
self.parent = parent
现在该类中的代码可以通过父类访问整个代码库的其余部分。
self.parent.Settings.loadSysConfig()
所以我的问题是:考虑到上述情况,重组项目和重构代码以保持其当前访问其他所有内容的能力的最佳方式是什么?代码非常不重要,所以我并不担心内部数据的完整性,我只是不喜欢以如此丑陋的方式遍历父类。那些长链也会减慢代码的速度。