学习Python的日子 Python(10)

Python
嵌套的包
Phone 是最顶层的包,Voicedta 等是它的子包。
第一种
import Phone.Mobile.Analog
Phone.Mobile.Analog.dial()
from 顶层包.子包.模块名
顶层包.子包.模块名.函数( )
第二种
from Phone import Mobile
Mobile.Analog.dial('555-1212')
from 顶层包 import 子包
子包.模块名.函数名( )
第三种
from Phone.Mobile import Analog
Analog.dial('555-1212')
from 顶层包.子包 import 模块名
模块名.函数名( )
第四种
from Phone.Mobile.Analog import dial
dial('555-1212')
from 顶层包.子包.模块名 import 函数名
函数名( )
尽量在import后写模块名或者函数
导入中出现的问题
1.动态插入搜索路径:
   sys.path.insert(下标,路径)
2.动态载入
模块更新了,想使用最新
from imp import *
reload(要更新模块名)
3.循环导入:
  A模块中导入了B模块中的具体的函数
  B模块中也导入了A模块中的具体的函数
  from a import func1
  报错: ImportError  ----->原因: 主要就是在模块导入的时候有循环导入的问题所以报错
  from a import *
  报错: NameError  ------>原因: 导入的时候需要指定的函数,但是导入不成功,需要的函数
    就不会加载到内存,内存中如果没有所以报错
打包
1. 创建setup.py文件
2. 构建内容: python3 setup.py build
3. 打包: python3 setup.py sdist
产生文件: setup(name="xxxx",version="1.1")--> xxxx-1.1.tar.gz
4. 安装:
   解压缩:  tar -zxvf xxxx-1.1.tar.gz
   进入压缩后文件夹: sudo python3 setup.py install
   把msg下的所有内容放到默认的路径:  /usr/loacl/lib/python3.5/dist-packages
from distutils.core import setup
setup(name="atguigu_msg", version="1.0", description="atguigu system", author="atguigu", py_modules=['msg.sendmsg', 'msg.recvmsg', 'msg.money.msgmoney'])


列表推导式
格式
[变量 for 变量 in 范围]
if格式
[变量 for 变量 in 范围 if 条件]
生成器
在Python中,这种一边循环一边计算的机制,称为生成器:generator
1.next(生成器对象)
每调用一下产生一个元素
如果调用到头,报错  stopIterator
2. 使用函数形式完成
   如果函数中yield关键字,则函数就是一个生成器
步骤
1. def 函数([参数]):
    使用yield
2. 调用函数
     f=函数名([参数])
     此时的f就是一个生成器对象
3.使用next(f)  --->产生对应元素
3. 生成器的常用函数:
    f.send([参数]|None)  ----> temp =yield b  temp就是用来接收参数的值的
    f.__next__()  ---->类似next(f)   到头也会报错的
重点
模块的概念
模块的导入: 3种
import [包名.]模块名 
from [包名.]模块名 import 模块|函数|类|全局变量
from [包名.]模块名  import *    ---->__all__   
包的概念
文件夹+ __init__.py
了解
sys.path
搜索路径
sys.modules
系统模块
sys.argv
命令行参数
标准库
os sys  builtins shutils  hashlib  random  time  re
扩展库
是需要下载
打包  解压 安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值