python 基础---模块
import 模块名
import 模块名 as 别名
import 模块1,模块2,模块3
from 模块名 import 方法名
from 模块名 import 方法名 as 别名
from 模块名 import *
__all__ = ['要使用的方法1',‘要使用的方法2’] 只能在使用 from 模块名 import * 起作用
1 #demo.py 2 import my_module #只在第一次导入时才执行my_module.py内代码,此处的显式效果是只打印一次'from the my_module.py',当然其他的顶级代码也都被执行了,只不过没有显示效果. 3 import my_module 4 import my_module 5 import my_module 6 7 ''' 8 执行结果: 9 from the my_module.py 10 '''
我们可以从sys.modules中找到当前已经加载的模块,sys.modules是一个字典,内部包含模块名与模块对象的映射,该字典决定了导入模块时是否需要重新导入。
模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块
我们可以通过模块的全局变量__name__来查看模块名:
当做脚本运行:
__name__ 等于'__main__'
当做模块导入:
__name__= 模块名
作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
if __name__ == '__main__':
1 def fib(n): 2 a, b = 0, 1 3 while b < n: 4 print(b, end=' ') 5 a, b = b, a+b 6 print() 7 8 if __name__ == "__main__": #只在自己模块内运行下面的程序 9 print(__name__) #本模块被引用时,下面的不执行,可当作模块的测试
10 num = input('num :') 11 fib(int(num))