在Python中,如何在不执行其他代码的情况下导入对象?

时间:2016-02-16 09:26:33

标签: python module

例如,参加a.py

stringcheese = "hi"
print("I don't want this printed")

现在是b.py:

from a import stringcheese
print(stringcheese)

输出结果为:

I don't want this printed
hi

如何在不执行stringcheese代码的情况下导入a.py

2 个答案:

答案 0 :(得分:3)

你做不到。必须执行模块的顶级代码才能使模块首先加载。

只将可执行语句放在模块的顶层,以便在导入时执行。

答案 1 :(得分:-1)

POSUM SHREDER,您可以使用if __name__ == '__main__'构造隐藏未导入的可执行文件,如果您调用python a.py,它们仍会被执行。

a.py

stringcheese = "hi"
if __name__ == '__main__' :
    print("I don't want this printed") 

main.py

from a import stringcheese
print(stringcheese)

有关详细信息,请阅读What does if __name__ == "__main__": do?