python(模块)

模块
定义
模块在python中就是一个py文件
好处
1.最大的好处是大大提高了代码的可维护性。
2.使用模块还可以避免函数名和变量名冲突。
  相同名字的函数和变量完全可以分别存在不同的模块中
查看模块的位置
交互模式下:
import os,random,io
   random.__file__  ----> 查看模块所在的位置
可以导入的模块
系统
import math   # 导入的就是一个数学模块
自定义的
导入模块方式
1.import 模块名    注意:模块名就是文件名
  使用模块中内容:
  导入的模块中有全局变量---->使用全局变量
  使用函数
  使用类  模块名.类名()  --->创建一个对象
加载test中所有内容,如果这个里面有测试语句,执行测试语句
2. from 模块名 import 全局变量|函数|类   --->只是导入该模块的部分内容
使用from方式
from 包名 import 模块名
3. from 模块名 import *   ---->代表导入整个模块中的内容
在使用的时候就无需添加模块名,可以直接调用
如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,会被from xxx import *时导入
模块位置的搜索顺序
当你导入一个模块,Python解析器对模块位置的搜索顺序是
通过:
import sys
sys.path
1.当前目录
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
3.如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
__name__
在本模块中,显示的结果:__main__
在被导入的情况下: __name__显示的结果就是:模块名
通过 if __name__=="__main__": 只让本模块执行,而不让被导入模块执行
作用
可以根据__name__变量的结果能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码.
__all__
仅仅只是对from 模块名 import *  (有效)
但是对于import 模块名  (无效)
包的使用
1. import 包名.模块名
使用的时候要全部:包名.模块名.函数名()   有点麻烦
2. from 包名 import 模块名
   可以使用导入的模块中内容,但是只能使用这一个包中的模块
3. from 包名 import *
  必须搭配一个文件,__init__.py 使用
  在__init__.py中的__all__中指明: * 可以使用的模块有哪些
补充:__init__.py 文件的作用:
1. 在__init__.py中的__all__中指明: * 可以使用的模块有哪些
2. 也可以在__init__.py中定义函数,函数的调用要依赖于包名
   调用方式: import 包名    --->  包名.函数名()

猜你喜欢

转载自blog.csdn.net/qq_42240071/article/details/80409797
今日推荐