擅长:python、mysql、java
<p>我认为真正的问题是你不明白你发布的代码。
在这种情况下,您需要理解<code>map</code>和{<cd2>}。在</p>
<p><a href="http://docs.python.org/library/functions.html#map" rel="nofollow">^{<cd1>}</a>是一个函数,它将函数应用于列表的每个元素,并将其作为列表返回:</p>
<pre><code>>>> def func(a):
... return a * 2
...
>>> map(func, [1,2,3])
[2, 4, 6]
</code></pre>
<p><a href="http://docs.python.org/tutorial/controlflow.html#lambda-forms" rel="nofollow">^{<cd2>}</a>可以看作是创建函数的快捷方式。以上内容可以用<code>lambda</code>编写:</p>
^{2}$
<p>所以您的代码<code>map(lambda cr: cr.id, crew)</code>在做什么:它从列表<code>crew</code>中的每个对象返回一个id属性列表。在</p>
<p>问题是这段代码实际上不是很好。您可以用<a href="http://docs.python.org/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehension</a>编写相同的函数,这更直观:</p>
<pre><code>def getCrewListAll(self):
return [cr.id for cr in getIdNumbers()]
</code></pre>