其他类中的Python对象还是分开的?

时间:2016-09-14 12:38:18

标签: python oop memory-management python-performance

我有一个我在 Python 2.7 中工作的应用程序,它有几个需要互相交互的类,然后将所有内容返回给主程序进行输出。

所以代码的一个简短例子是:

class foo_network():
    """Handles all network functionality"""
    def net_connect(self, network):
       """Connects to the network destination"""
       pass

class foo_fileparsing():
    """Handles all sanitation, formatting, and parsing on received file"""
    def file_check(self, file):
        """checks file for potential problems"""
        pass

目前我有一个主文件/函数,它实例化所有类,然后根据需要处理它们和它们的方法之间的来回传递数据。然而,这似乎有点笨拙。

因此,我想知道两件事:

  1. 最好的' Pythonic'处理这个的方法?
  2. 处理性能和内存使用的最佳方法是什么?
  3. 我想知道我是否应该在另一个类中实例化一个类的对象(例如,如果在 foo_network 类中创建一个 foo_fileparsing 对象,这是唯一会调用它的类,而不是我当前将所有东西都返回到main函数并将其传递给对象的方法。

    不幸的是,我找不到可能解决此类情况的PEP或其他资源。

1 个答案:

答案 0 :(得分:0)

您可以使用模块。并将每个班级都放在一个模块中。 然后您可以使用import从该类中仅导入特定方法。 您需要做的就是创建一个名称与您的类名相同的目录,并在该目录中放置一个 init .py文件,告诉python将该目录视为一个模块。 然后为前。 foo_network文件夹包含名为foo_network.py的文件和文件 init .py。在foo_network.py中,代码是 -

class foo_network():
    """Handles all network functionality"""
    def net_connect(self, network):
       """Connects to the network destination"""
       pass

,在任何其他文件中,您只需使用

即可
import net_connect from foo_network

它只会导入该特定方法。这样,您的代码看起来就不会太乱,您只能导入所需的代码。 你也可以做

import * from foo_network 

一次导入所有方法。

希望有所帮助。