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__':
posted @ 2018-12-02 21:08  lieying6011  阅读(121)  评论(0编辑  收藏  举报