python迭代器、文档基础入门介绍学习
没啥用,但是可以看看。
print('======迭代器==========')
"""
什么是迭代器
迭代,顾名思义就是重复做一些事很多次(就现在循环中做的那样)。迭代器是实现了__next__()方法的对象(这个方法在调用时不需要任何参数),它是访问可迭代序列的一种方式,通常其从序列的第一个元素开始访问,直到所有的元素都被访问才结束。 [注意]:迭代器只能前进不能后退
[迭代器的优点]:
使用迭代器不要求事先准备好整个迭代过程中的所有元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后元素可以不存在或者被销毁。因此迭代器适合遍历一些数量巨大甚至无限的序列。
二、创建迭代器
A、使用内建的工厂函数iter(iterable)可以将可迭代序列转换为迭代器
B、自定义迭代器
•Python中迭代器的本质上每次调用__next__()方法都返回下一个元素或抛出StopIteration的容器对象
•由于Python中没有“迭代器”这个类,因此具有以下两个特性的类都可以称为“迭代器”类:
1、有__next__()方法,返回容器的下一个元素或抛出StopIteration异常
2、有__iter__()方法,返回迭代器本身
三、迭代器的方法
1.iter.__next__():返回迭代器的下一个元素,但没有下一个元素时抛出StopIteration异常
2.iter.__iter__():返回迭代器对象本身
"""
print('======map\zip\filter迭代器==========')
M=map(abs,(-1,0,1))
print(M)
print(next(M))
print(next(M))
print(next(M))
# print(next(M)) 出错
M=map(abs,(-1,0,1))
for x in M:
print(x)
print(list(map(abs,(-1,0,1))))
Z=zip((1,2,3),(10,20,30))
print(Z,list(Z))
l=filter(bool,['spam','ni'])
print(l,list(l))
print('======多个迭代器和单个迭代器==========')
R=range(3)
t1=iter(R)
print(next(t1))
print(next(t1))
print(next(t1))
# print(next(t1))
D=dict(a=1,b=2,c=3)
K=D.keys()
print(K)
I=iter(K)
print(next(I))
print(next(I))
print(next(I))
print('======文档==========')
import sys
print(dir(sys)) #调用抓取对象内所有属性列表的简单方式。能够调用任何有属性的对象
print(dir([])) #查看列表和字符串的属性,可传入空对象 可以用dir(str)替代
print(dir('')) #可以用 dir(list)
print('======文档字符串:__doc__ ==========')
"""
新创建 docstrings.py
Module documentation
Words Go here
"""
spam = 40
def square(x):
"""
function documentation
can we have your liver then ?
"""
return x**2 #square
class Employee:
"class documentation"
pass
print(square(4))
print(square.__doc__)
import docstrings
print(docstrings.__doc__)
print(docstrings.square.__doc__)
print(docstrings.Employee.__doc__)
print('======PyDoc:help函数==========')
import docstrings
help(docstrings.square)
help(docstrings.Employee)
help(docstrings)