我试图理解exec(open)函数是如何工作的并且遇到了以下问题。这是解释问题的简化代码。
Module1.py
print(11)
def func():
print(12)
if __name__ == "__main__":
func()
所以,当我从终端窗口运行这个模块时,使用' python Module1.py',我得到的输出为
C:\projects>python Module1.py
11
12
但是,当我使用Python控制台/解释器中的exec(open)函数执行它时,这个' exec(打开(' Module1.py')。read())&#39 ;然后输出
>>> exec(open('Module1.py').read())
11
问题是:为什么是" if __name__ == __main __"使用exec函数时阻止不执行?
答案 0 :(得分:0)
在PyCharm中运行代码不一定与在适当的Python控制台中运行代码相同。
正如你在评论中提到的,如果你在PyCharm中得到奇怪的结果,那么值得回到控制台并检查输出。
根据结果,PyCharm似乎正在以" main"并且您通过PyCharm运行的任何代码似乎都不被视为模块主体。