使用类的实例

时间:2017-07-11 23:25:32

标签: python python-2.7 class module python-module

是否有一种“pythonic”方法可以为模块使用类的实例。例如:

class MyClass:
   def __init__(self):
       self.my_var = "cool value"

_instance = MyClass()

def getInstance():
    return _instance()

目标是通过应用程序共享大型查找类,而不是在每次导入时初始化它们。

2 个答案:

答案 0 :(得分:3)

您可以从模块导入任何内容。类实例也不例外:

<强> file1.py

class MyClass:
   def __init__(self):
       self.my_var = "cool value"

instance = MyClass()

<强> file2.py

from file1 import instance

答案 1 :(得分:0)

如果您的实例是以某种方式动态创建的,并且您真的需要跟踪它们,则可以覆盖__new__,如下所示:

class MyClass:
    instances = []

    def __new__(cls, *args, **kwargs):
        my_instance = super(MyClass, cls).__new__(cls, *args, **kwargs)
        MyClass.instances.append(my_instance)
        return my_instance

a = MyClass()

print(MyClass.instances)