我在找函数的文档

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/

10-11 07:23