作者:张雍昊 | 来源:互联网 | 2023-10-09 19:58
一、前提1.dir()函数dir()函数带参数时,返回参数的属性和方法列表;不带参数时,返回当前范围内变量、方法和定义的类型列表#dir(参数):带参数,返回参数的属性和方法s
一、前提
1.dir()函数
dir()函数带参数时,返回参数的属性和方法列表;不带参数时,返回当前范围内变量、方法和定义的类型列表
# dir(参数):带参数,返回参数的属性和方法
s = ''
print(dir(s))
print(dir([]))
2.双下法
双下方法,带双下划线的方法,可以通过不止一种方法调用
l1 = [2, 1]
l2 = [1, 2]
print(l1 + l2) # l1+l2 -> l1.__add__(l2),通过python解释器转化
print(l1.__add__(l2))
二、可迭代协议
1.可迭代协议:只要含有__iter__方法,就是可迭代的
2.判断
# 方法1,判断是否含义__iter__方法
l1 = list(range(10))
res = '__iter__' in dir(l1)
if res:
print('l1,可迭代')
else:
print('l1,不可迭代')
# 方法2,通过导入模块
from collections.abc import Iterable # from collections import Iterable 被弃用
s = 'Hello, World!'
res = isinstance(s, Iterable)
if res:
print('s,可迭代')
else:
print('s,不可迭代')
3.与for循环的关系
只要是可迭代的就可以使用for循环
三、迭代器协议
迭代器协议:含有__iter__和__next__方法,就是迭代器
四、