2024-09-29 23:27:29 发布
网友
请看下面的代码好吗
def getCrewListAll(self): """ Set to crew list to all available crew """ crew = getIdNumbers() return map(lambda cr: cr.id, crew)
这里cr.id是什么意思,id是一个内置的python函数还是?在
cr.id
id
cr.id不是一个内置函数(除非您将其指定为…),它是cr对象的普通成员。在
cr
id(cr)将是对该内置项的调用,并将返回cr的标识。在
id(cr)
在您的示例中,对cr.id的引用不是函数调用。它访问cr变量的成员属性,该属性是crew对象的占位符。在
crew
idis the name of a builtin function,是的。但是如果没有看到实际的类定义,就无法知道它是否在这些对象中被暗地使用。在
举个例子。。。如果这是一个django应用程序,那么模型实例具有id成员属性,这些属性为您提供该记录的数据库id。它是该框架类设计的一部分。在
即使我假设这是一种属性。。。据我们所知,它也可能是一个computed property,它类似于一个类似于属性的方法调用。当你看你的例子时,它可以做更多的逻辑。在
最后,由于cr.id可以是任何东西,它甚至可以是一个方法,并且映射返回一个可调用列表:cr.id()
我认为真正的问题是你不明白你发布的代码。 在这种情况下,您需要理解map和{}。在
map
^{}是一个函数,它将函数应用于列表的每个元素,并将其作为列表返回:
>>> def func(a): ... return a * 2 ... >>> map(func, [1,2,3]) [2, 4, 6]
^{}可以看作是创建函数的快捷方式。以上内容可以用lambda编写:
lambda
所以您的代码map(lambda cr: cr.id, crew)在做什么:它从列表crew中的每个对象返回一个id属性列表。在
map(lambda cr: cr.id, crew)
问题是这段代码实际上不是很好。您可以用list comprehension编写相同的函数,这更直观:
def getCrewListAll(self): return [cr.id for cr in getIdNumbers()]
cr.id
不是一个内置函数(除非您将其指定为…),它是cr
对象的普通成员。在id(cr)
将是对该内置项的调用,并将返回cr
的标识。在在您的示例中,对
cr.id
的引用不是函数调用。它访问cr
变量的成员属性,该属性是crew
对象的占位符。在id
is the name of a builtin function,是的。但是如果没有看到实际的类定义,就无法知道它是否在这些对象中被暗地使用。在举个例子。。。如果这是一个django应用程序,那么模型实例具有
id
成员属性,这些属性为您提供该记录的数据库id。它是该框架类设计的一部分。在即使我假设这是一种属性。。。据我们所知,它也可能是一个computed property,它类似于一个类似于属性的方法调用。当你看你的例子时,它可以做更多的逻辑。在
最后,由于
cr.id
可以是任何东西,它甚至可以是一个方法,并且映射返回一个可调用列表:cr.id()我认为真正的问题是你不明白你发布的代码。 在这种情况下,您需要理解}。在
map
和{^{} 是一个函数,它将函数应用于列表的每个元素,并将其作为列表返回:
^{} 可以看作是创建函数的快捷方式。以上内容可以用
^{2}$lambda
编写:所以您的代码
map(lambda cr: cr.id, crew)
在做什么:它从列表crew
中的每个对象返回一个id属性列表。在问题是这段代码实际上不是很好。您可以用list comprehension编写相同的函数,这更直观:
相关问题 更多 >
编程相关推荐