python之路——13
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
复习
1.函数
1.函数的定义和调用
2.参数及传递顺序
形参角度: 位置参数;*args;默认参数;**kwargs
实参角度: 按位置传,按关键字传
3.返回值:0/1/多个
4.闭包函数——内部函数引用外部函数变量
2.装饰器
1.作用:不改变函数调用方式的情况下,在函数前后增加功能
2.原则:开放(扩展)封闭(修改)原则
3.from functools import wraps
@wraps(func)
4.带参数的装饰器
学习内容
1.迭代器
[]--可迭代对象 [].__iter__()--迭代器
1.可迭代对象:list,dic,set,tuple,f = open(),str,range(),enumerate
2.可以被for循环的数据类型,都拥有_iter_方法
3.含有__iter__方法的都是可迭代的——可迭代协议
4.迭代器协议——内部含有__next__和__iter__方法的就是迭代器
5.可迭代的.__iter__()方法就可以得到一个迭代器
6.迭代器中的__next__()方法可以一个一个的获取值
2.使用情况:
函数返回:
1.iterator
2.可迭代对象
3.直接返回内存地址
3.优点
1.从容器类型中逐一取值,所有值
2.节省内存空间 range(100000) 不直接在内存中生成数——随循环或者next逐一生成
文件句柄——可迭代,
4.生成器
生成器函数
代码区
'''
# 所有关于列表的操作
print(dir([]))
# 双下方法
print([1].__add__([2]))
print([1]+[2]) # python解释器内部通过调用add计算 print('_iter_' in dir(int)) # in l = [1,2,3]
print(l.__iter__().__next__())
iterator = l.__iter__()
print(iterator)
'''
# for 循环内部
'''
l = [1,2,3]
for i in l:
print(i)
#1. iterator = l.__iter__()
#2. iterator.__next__() # range 函数
# print(range(1000))
# print(list(range(1000)))
'''
# 生成器函数
'''
def generator():
print(1)
print(2)
yield 'a'
print(3)
yield 'b'
g = generator()
for i in g:
print(i)
# ret = g.__next__()
# ret = g.__next__()
'''
# 生成器可以随时连续取值
'''
def wahaha():
for i in range(2000000):
yield '娃哈哈%s'%i
g = wahaha()
count = 0
for i in g:
count += 1
print(i)
if count >50:
break
print('****',g.__next__())
count = 0
for i in g:
count += 1
print(i)
if count >50:
break
'''
# 监视文件输入
def tail(filename):
f = open('log',encoding='utf-8')
while True:
line = f.readline()
if line.strip():
yield line.strip() g = tail('file')
for i in g:
if 'python' in i:
print('***',i)
python之路——13的更多相关文章
- 【python之路13】python的深浅拷贝
深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 impor ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
随机推荐
- Python—装饰器详解
装饰器:(语法糖) 本质是函数,它是赋予函数新功能,但是不改变函数的源代码及调用方式 原则: 1.不能修改被装饰函数的源代码 2.不能修改被装饰函数的调用方式 3.函数的返回值也不变 这两点简而言 ...
- python 在.py文件中调用其他.py内的函数
假设名为A.py的文件需要调用B.py文件内的C(x,y)函数 假如在同一目录下,则只需 import B if __name__ == "__main__": B.C(x,y ...
- Java覆盖
Java的覆盖: 源代码: package dijia;class Parent1{ void f() { System.out.println("迪迦奥特曼1"); } void ...
- Linux中实现文本过滤
alias命令 功能:设置指令的别名 语法:alias [别名]=[指令名称] 参数:若不加任何参数,则列出所有别名的设置 说明:alias仅作用于当前登录的shell.若要永久使用别名,可在/etc ...
- 第一章01:熟悉java,发展历史
1. java由来: 原公司,sun,后来被oracle\甲骨文公司收购 java,主要用于开发互联网软件,例如:QQ.迅雷.淘宝.京东
- OC学习笔记
备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! ARC单例模式的实现 使用alloc方法初始化一个类的实例的时候,默认是调用了 allocWit ...
- ubuntu1604使用之旅——安装samba
1.安装samba sudo apt-get install samba 2.安装sambaclient sudo apt-get install smbclient 3.修改配置文件 sudo vi ...
- TensorFlow函数:tf.reduce_sum
tf.reduce_sum 函数 reduce_sum ( input_tensor , axis = None , keep_dims = False , name = None , reducti ...
- 学习笔记TF042:TF.Learn、分布式Estimator、深度学习Estimator
TF.Learn,TensorFlow重要模块,各种类型深度学习及流行机器学习算法.TensorFlow官方Scikit Flow项目迁移,谷歌员工Illia Polosukhin.唐源发起.Scik ...
- python第三方模块的导入
模块搜索路径 当我们尝试加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错: >>> import module1 Traceback (most ...