我在找函数的文档
in
在蟒蛇体内。这很难,因为搜索引擎不能使用像in这样的词。
最佳答案
“in
”不是函数。它是一个内置的关键字。使用它可以触发目标对象__contains__()
http://docs.python.org/reference/datamodel.html#object.contains
>>> l = ['a']
>>> l.__contains__('a')
True
>>> 'a' in l
True
我说“可以触发”是因为逻辑在幕后有不同的解决方法:
对于未定义
__contains__()
的对象,成员资格测试首先通过
__iter__()
尝试迭代,然后是旧序列迭代协议通过
__getitem__()
注意,这个例子只涉及一个成员资格测试,而不是使用它在一个iterable上循环。
为了说明如何在循环操作期间解析
in
,首先使用__iter__()
查找迭代器:l = range(5)
l.__iter__()
# <listiterator object at 0x1004e4fd0>
it = l.__iter__()
it.next()
# 0
it.next()
# 1
it.next()
# 2
如果对象没有定义
__iter__()
,它将尝试使用旧的__getitem__()
。以字符串为例,它没有__iter__()
这只是一个例子。。。>>> i = 0
>>> s = "string"
>>> while i < len(s):
... print s.__getitem__(i)
... i+=1
...
s
t
r
i
n
g
要显示类似的迭代器(这里是生成器):
gen = (s.__getitem__(i) for i in xrange(len(s)))
# <generator object <genexpr> at 0x1004e8780>
gen.next()
# 's'
gen.next()
# 't'
gen.next()
# 'r'
关于python - 找到功能“在”中的文档页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11005277/