模块和包
来源:互联网 发布:淘宝代收点怎么设置 编辑:程序博客网 时间:2024/06/02 00:03
一、
1、有些时候代码的可读性差,且重复的代码多,写代码困难大
然后我们就将一些复杂的需要重复使用的功能进行归类,分别放到同一个py文件中。
需要调用的时候直接拿来用就可以了。--- 就产生了模块(其实就是py文件)
2、导入模块
①、是先看自己内存有没有,没有的话再引入。
②、创建一个命名空间,在这个命名空间中执行代码
③、创建了一个xiaomei这个名字,给命名空间中变量和xiaomei绑定在一起
④、import方式导入模块中的内容和自己文件中的内容不会冲突
def drive():passxiaomei.drive() #执行模块里的函数print(xiaomei.price)
注意:依赖倒置原则。(模块之间不能互相调用--单项调用)
3、import...as:给模块重命名,重命名之后之前的名字就失效了,新名字可以直接使用
import xiaomei as xm #import的名字太长我嫌弃xm.drive() # 得到原xiaomei中的内容import xiaomei as xm #当import的模块和我文件中的变量重名的时候def xiaomei(): print(123)xiaomei() # 得到当前文件的 内容 # 123
3.1应用实例:
if 是mysql数据库: #当兼容多个模块的相同操作的时候 import mysql as dbelif 是oracle数据库: import oracle as dbdb.opendb.write
4、import多个模块
importos,re,time# 就这一句话
os.getcwd() / re.findall() / time.time() # 这样就可以用了
①但最好是如下一个一个引用:
import os
import re
import time
②导入顺序:
先导入内置的模块
再导入扩展模块 :requests beautifulsoup django selenium paramiko
最后导入自定义的模块
③调用模块中的个别方法:
from xiaomeiimportdriveasd,priceasp
from import的用法 会直接将导入的内容放在全局,
但是dirve中用到的变量和drive方法是一种绑定关系
如果有同名,就会发生覆盖
1、import xiaomei (比较好)
2、from xiaomeiimport* # 调用模块中所有方法
# (不太好,因为如果有500个全部引用?)所以就出现了 __all__
xiaomei模块:
price = '三十块钱一位'def drive(): print('快上车') print(price)def login(): print('login ')如果在文件开始设置__all__ = ['drive'] ,则别的文件用 * 时,只能调用只drive
3、from xiaomeiimportdrive,price (好)
5、如果在 xiaomei 这个模块中有 print(),则一调用就会打印,为了避免这个,所以就出现了:(下面这个是xiaomei模块的内容)
def login(): print('login ')if __name__ == '__main__': # login() print('小司机') # login\n 小司机print(repr(__name__)) # '__main__' (所以调用的时候name是xiaomei就进入不了 if 中 所以就不打印。)
6、这个题的意思就是说,(玩,不重要)
①、内置模块在启动程序的时候就已经加载到内存了,再定义一个time模块,并不会怎么样(re模块特殊)
②、例如xiaomei模块在这个程序等的十秒钟里,改变了内容,不会改变!但是加上了( importlib.reload)这个,相当于重新加载一次就会改变!
import time,importlibimport xiaomeixiaomei.drive()time.sleep(10)# importlib.reload(xiaomei) print('price : ',xiaomei.price)
二、这个不懂!!!
import re
import sys
print(sys.modules)
print(sys.path)
----------------------------------------------------
执行python解释器,已经在内存中加载了一些内置的模块了
导入模块的时候,如果模块不存在在sys.modules,才从sys.path给的路径中依次去查找
sys.path完全可以决定某个模块能不能被找到(除了已经在内存中加载的一些内置模块)
------------------------------------
import xiaomei
当一个py文件被当做一个模块导入的时候,会自动生成一个pyc文件
pyc文件是这个代码编译之后的文件,节省了每一次导入代码之后还要编译的时间
--------------------------------------------------------
import xiaomei
print(dir(xiaomei))
--------------------------------------------------------
import builtins
print(dir(builtins))
三、包
from glance.apiimportpolicy,versions
policy.get()
在包中使用模块,就是一直...直到找到模块,import就行了
阅读全文
0 0
- 关于包和模块
- Python 模块和包
- 包和模块
- Python模块和包
- Python 模块和包
- python模块和包
- python 模块和包
- Perl包和模块
- Python模块和包
- Perl包和模块
- Perl--包和模块
- Python模块和包
- perl 包和模块
- Python包和模块
- Python模块和包
- python模块和包
- Python模块和包
- Python 模块和包
- 获取当前时间格式
- 矩阵分解 LDL^T分解
- Git
- .TransactionRequiredException: Executing an update/delete query
- 关于输入net start mysql 服务名无效
- 模块和包
- 寻找最长回文字符串
- Caffe 配置文件详解
- Markdown 基本语法
- 阿里云 oss JavaScript客户端签名文件上传 vue2.0
- 初学者漫画手部画法教程
- maven2依赖包下载地址
- STM32入门系列-GPIO结构
- 面向对象简单解释