day8 模块与包
导入模块 发生的三件事
'''
1, 他在内存中开辟了一个以tbix命名的空间。
2, 你模块中的所有内容都加载到内存。
2, 你要通过tbjx.的方式去引用模块中的对象。
'''
print('from the tbjx.py')
__all__=['read1','read2']#import tbjx * #只引入列表里的名称或方法
name = '太白金星'
def read1():
print('tbjx模块:', name)
def read2():
print('tbjx模块')
read1()
def change():
global name
name = 'barry'
def func3():
with open('a.txt',encoding='utf-8',mode='w'):
pass
print('func3 调试成功')
if __name__ == '__main__': #此文件当作执行文件时执行下面的代码 但被导入时 __name__ == 'tbjx'也就是等于文件名只导入上面的代码。调试的时候用功能
func3()
import 包 发生了三件事:
'''
1,在内存中开辟一个名称空间aaa
2,自动将包下面的__init__文件中代码加载到内存。
3, 通过aaa. 获取模块中的对象。
'''
# 总结:
# 执行文件!!的当前目录是在sys.path的第一个参数。
# 所以当前目录的文件可以直接import。
# 无论怎么样导入文件import 还是 from ... import ... 一定是从执行文件当前目录开始。
# 包的总结:
# 如果要是 from 包.包.包(执行文件同一个目录,sys.path) import ... 那么 __init__ 可以不用任何操作
# .的左边一定是包
# 如果你是 import 包 __init__ 必须要各种写。
五,py文件的两种功能
#编写好的一个python文件可以有两种用途: 一:脚本,一个文件就是整个程序,用来被执行 二:模块,文件中存放着一堆功能,用来被导入使用 #python为我们内置了全局变量__name__, 当文件被当做脚本执行时:__name__ 等于'__main__' 当文件被当做模块导入时:__name__等于模块名 #作用:用来控制.py文件在不同的应用场景下执行不同的逻辑(或者是在模块文件中测试代码) if __name__ == '__main__':