#第一种模块导入方式 import send #调用send中的函数,类 msg1 = send.Msg() msg1.send() send.test()
#模块第二种导入 #从send模块中导入test函数 from send import test #这种方式导入可以不用加模块名 test()
#第二种导入模式的风险 #*表示导入send模块里所有的类或者函数 from send import * from test import * #调用test()函数,test()函数在两个模块中都有,就会发生覆盖 #这里会执行test.py中的test()函数 test()
class Msg(object): def send(self): print("send message .") def test(): print("i am test from send.py") #python使用import导入模块,python解析器会先将模块执行一遍, #如果不想模块中的某些方法被执行,需要使用__name__内置变量 #__name__内置变量,当直接执行本模块时,__name__的值是"__main__" #当本模块被其它python文件导入时,__name__的值是本模块的名字 #因此可以通过__name__变量来屏蔽某些不想被其他Python文件调用的方法 if "__main__" == __name__: test() else: print("send.py 正在被调用.")