Python导入与直接执行

Sky*_*ker 1 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)
Run Code Online (Sandbox Code Playgroud)

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

For*_*Bru 9

是的,这是正常行为.您需要调用change该代码的函数来执行.

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

if __name__=="__main__":
    change()
Run Code Online (Sandbox Code Playgroud)