Python导入与直接执行

时间:2015-04-17 13:00:15

标签: python python-import

#conf.py

def init():
    global mylist   
    mylist=[]


#change.py

import conf

def change():
    if __name__ == "__main__":
        print('Direct')
        conf.mylist.append('Directly executed')
        print(conf.mylist)
    else:
        conf.mylist.append('It was imported') 


#exec.py

import conf
import change

conf.init()  
change.change()

print (conf.mylist)

运行 exec.py 时,结果是我的预期,直接运行 change.py 时我没有得到任何输出(没有直接,没有conf.mylist

2 个答案:

答案 0 :(得分:9)

是的,这是正常行为。您需要调用change函数才能执行此代码。

您可以将以下内容添加到 change.py

的末尾
if __name__=="__main__":
    change()

答案 1 :(得分:2)

这是因为永远不会调用change。使用change()

在文件末尾调用它