in 操作符:也叫成员检测符。
item in obj
, 返回True或False。 obj需要是一个可迭代对象(iterable), 或者实现了__contains__
方法的自定义类。
def gen_fun():
yield 1
yield 2
yield 3
print(3 in [1,2,3]) # in + 列表
print(3 in (1,2,3)) # in + 元组
gen = gen_fun()
print((3 in gen)) # in + 生成器
print(3 in range(1,4)) # in + range对象
需要注意的是, range函数返回的是range对象,也是一个可迭代对象,但它不是生成器。
再看一个实现了__contains__方法的自定义类:
class Foo:
def __contains__(self, item):
if item in [1,2,3]:
return True
else:
return False
foo = Foo()
print(3 in foo) # True
print(4 in foo) # False
标签:__,python,contains,语法,range,print,foo,gen
From: https://www.cnblogs.com/rolandhe/p/18637889