模块会先搜索当前路径,然后才会到系统路径下搜索
sendmsg.py
def test(): print("----test--------") def test1(): print("----test1-------")
第一种导入方式,
import sendmsg sendmsg.test()
第二种导入方式
from sendmsg import test,test1 test()
test1()
第三种导入方式,建议少使用
from sendmsg import * test() test1()
import time as tt #起别名 tt.sleep(3)
__name__ 变量
sendmsg.py
def test(): print("----test--------") def test1(): print("----test1-------") # print(__name__) #自己调用打印__main__,别的模块调用打印模块名 if __name__ == "__main__": #只有在自己调用时才运行,别的模块调用不执行 test() test1()
main.py
import sendmsg #打印的结果为sendmsg模块名
正常的代码样式
import xxx class xxx(object): def __init__(self): pass def xxx(): pass def main(): #一般程序的入口为main,习惯用法 pass if __name__=="__main__": main()
模块查找顺序
import sys print(sys.path) #sys.path显示环境变量,导入一个模块时先会在当当路径下查找,如果没有,在path中查询,查询到后返回,查不到报错 sys.path.append("/home") #sys.path.append,sys.path返回一个list,使用append方法添加变量 print(sys.path)
重新导入模块
模块在导入后,如果同时源模块被修改,只能重新再导入一次,或者使用reload(模块名)重新加载模块
import hello from importlib import * #使用importlib中reload方法重新加载模块 hello.print_hello() reload(hello)