gpt4 book ai didi

python - a def 在函数中的用法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:15 26 4
gpt4 key购买 nike

特别是阅读 Python 文档 this页面,关于 attrgetter 和 itemgetter。

我正在努力理解代码示例中 defreturn 的用法。 不是那些函数的使用。

这看起来像一个lamdba,但我不知道如何解释它。

编辑


我认为它只是点击了。 attrgetter 就像 resolve_attr 函数的构造函数?这有点令人困惑,因为我通常希望 def 的代码位于 defreturn 之间。返回的代码就像一个 lambda。更令人困惑的是,arg ojb 是传递给返回对象的参数。啊啊啊……


我需要知道什么才有意义?

这是我所指的代码示例:

   def attrgetter(*items):
if any(not isinstance(item, str) for item in items):
raise TypeError('attribute name must be a string')
if len(items) == 1:
attr = items[0]
def g(obj): #What is this
return resolve_attr(obj, attr)
else:
def g(obj):#And this?
return tuple(resolve_attr(obj, attr) for attr in items)
return g

def resolve_attr(obj, attr):
for name in attr.split("."):
obj = getattr(obj, name)
return obj

最佳答案

def 是定义函数的关键字。

这些只是在另一个函数 attrgetter()

中定义的函数

这就是为什么在 attrgetter() 中有多个 return 的原因

g 看起来像 lambda 因为 attrgetter() 返回一个函数,而不是直接返回结果。

g 确实可以替换为 lambda 声明。

关于python - a def 在函数中的用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44994522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com