Python 函数名,可迭代对象及迭代器

Posted clara51

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 函数名,可迭代对象及迭代器相关的知识,希望对你有一定的参考价值。

函数名是什么?
1,函数名就是函数的内存地址
a = 2
b = a
c = b
print(c)
2,函数名可以作为变量。
def func1():
print(666)
f1 = func1()
f2 = f1
print(f2)
3,函数名可以作为函数的参数。
def func1():
print(666)
def func2(x):
print(x)
x()
print(func1)
函数名可以当做函数的返回值。
def wapper():
def inner():
print(‘inner‘)
return inner
ret = wapper()
ret()
globals() 返回全局变量的一个字典
locals() 返回【当前位置】的局部变量的字典。
def func1():
a = 2
b = 3
print(globals())
print(locals())
def inner():
c = 6
d = 5
print(globals())
print(locals())
inner()
print(globals())
print(locals())
可迭代对象
for i in ‘abc‘:
print(i)
对象内部含有__iter__方法就是可迭代对象。
可迭代对象满足可迭代协议。
可迭代对象有:str list dict tuple set range
s1 = ‘strs‘
print(dir(s1))
判断一个对象是否可迭代对象有两种方法:
第一种方法:
s1 = ‘strs‘
dic = {‘name‘:‘alex‘}
print(‘__iter__‘in dir(s1))
print(‘__iter__‘in dir(dic))
第二种方法:
from collections import Iterable #Iterable:可迭代
from collections import Iterator #Iterator:迭代器
print(isinstance(‘alex‘,Iterable)) #isinstance:判断数据类型及功能等等。。。
print(isinstance(‘alex‘,Iterator))
print(isinstance(‘alex‘,str))
迭代器是什么?
对象内部含有__iter__方法且含有__next__方法就是迭代器。
f=open(‘register.txt‘,encoding=‘utf-8‘)
print(‘__iter__‘in dir(f))
print(‘__next__‘in dir(f))
print(‘__iter__‘in dir(dict))
print(‘__next__‘in dir(dict))
可迭代对象vs迭代器
可迭代对象不能取值,迭代器是可以的
可迭代对象--->(转化成)迭代器
lis = [1,2,3]
itel = lis.__iter__()
itel = iter(lis)
print(itel)
迭代器如何取值?next一次,取一个值
print(itel.__next__())
print(itel.__next__())
print(itel.__next__())
1、可迭代对象不能取值,迭代器是可以取值的。
2、迭代器非常节省内存。
3、迭代器每次只会取一个值。
4、迭代器是单向的,一条路走到头。
s1 = ‘aqwdew‘
1、将可迭代对象转化成迭代器。
2、调用__next__方法取值。
3、利用异常处理停止报错。
iter1 = s1.__iter__()
while 1:
try:
print(iter1.__next__())
except StopIteration:
break




























































































以上是关于Python 函数名,可迭代对象及迭代器的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数名,可迭代对象及迭代器

Python全栈开发之---迭代器可迭代对象生成器

迭代器可迭代对象迭代器对象生成器生成器表达式和相关的面试题

迭代器可迭代对象与生成器

python基础--迭代器生成器

13.py