Python:导入类可在__init __中运行代码

问题描述

我有一个主类,它创建另一个类的实例,必须先将其导入。 经过一段时间的调试后,我发现,导入类的__init__方法中的代码在我导入时就运行了。但是,为了使我的代码正常工作,我需要在导入时不要运行它。 我已经找到了这个thread,但对我没有帮助。 为了进行测试,我编写了一个简单的应用程序,没有出现问题:

test.py:

class foo:
    def __init__(self):
        print("foo")

main.py:

from test import foo
def main():
    print("bar")
    t = foo()

代码按预期工作,输出首先是“ bar”,然后是“ foo”。

__init__代码何时执行,何时不执行?

解决方法

调用__init__()时执行foo类的

foo()

因此,在您的情况下,当您执行t = foo()

时,将发生构造函数调用

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...