pycharm' Python控制台中的exec(open)函数'不执行' if __name__ ==' __ main __'块

时间:2017-02-26 04:44:06

标签: python pycharm exec

我试图理解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函数时阻止不执行?

1 个答案:

答案 0 :(得分:0)

在PyCharm中运行代码不一定与在适当的Python控制台中运行代码相同。

正如你在评论中提到的,如果你在PyCharm中得到奇怪的结果,那么值得回到控制台并检查输出。

根据结果,PyCharm似乎正在以" main"并且您通过PyCharm运行的任何代码似乎都不被视为模块主体。