wklken的笔记 2019-11-01
一:一个小问题:什么是模块?
我的理解是:有通用功能的文件的集合。
二:为什么要使用模块?
我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以把他们当做模块导入其他的模块中,实现了功能的存放利用。
三:怎样导入自己的模块?
自定义demo模块:
print(‘in demo.py‘)money=100def read(): print(‘in read‘,money)print(__name__)
‘‘‘import demodef read(): print(‘lxx‘)money=200demo.read()print(demo.money)过程:1.找到模块 2.(先从sys.modules(字典)里查看是否已经导入了模块,如果没有被导入,就依据sys.path路径寻找模块,找到了就导入)创建这个模块的命名空间 3.把文件中的名字都放到命名空间里import sysprint(sys.modules.keys())#首先看看模块在不在‘‘‘
关于模块的各个方法:
# import time as tt #给模块起别名 重命名之后之前的名字不能用了# print(tt.time())from time import sleep #单独从某个模块中导入一个方法或者是变量# from demo import read# read()# from demo import * #能导入全部的东西# # print(money)# # read()# # read2()# from math import pi #pi特定的:圆周率# print(pi)# pi=234# print(pi)#结果:# 3.141592653589793# 234
五:把模块当做脚本执行:我们可以通过模块的全局变量__name__来查看模块名 自己写的文件 demo __name__ 得到的是:main 但当你导入这个模块的时候 __name__ 得到的就是demo名字 所以 这个方法可以:当我们想要一个方法是现在自己写的文件上,但不希望他使用在被导入的模块中的时候。六:导入模块是要注意的地方:1.所有模块导入应尽量往上写。2.导入循序最好是:内置模块--》扩展模块--》自定义模块3.检查模块不会重复被导入:sys.moudles4.从哪导入模块:sys.path5.from 模块名 import * 和 _all_ 是一对,没有这个变量就会导入所有的,如果有all就只导入all列表中的。