为什么代码打印 "test message" 虽然我只写了打印属性 "a" 的代码

why does the code print the "test message" although I wrote just the code for printing the attribute "a"

我不知道为什么它会打印“test message”和“ABC”而不是“ABC”。 我认为只是编写了用于打印属性“a”的代码,但它打印了更多内容!

我有两个模块:“first.py”和“second.py”

first.py 是:

import second
print(second.a)

second.py 是:

a="ABC"
print("test message")

输出是:

test message
ABC

import second 将 运行 second.py 中的所有代码。 print("test message")也被执行。 如果你想阻止下面的这种使用

a = 'ABC'
if __name__ == "__main__":
    print("test message")

if __name__ == "__main__": 仅当 运行 来自该文件时 运行。