gpt4 book ai didi

python - 请解释这个python "for"语句: methodList = [method for method in dir(object) if callable(getattr(object,方法))]

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:23 25 4
gpt4 key购买 nike

我正在尝试使用内省(introspection)来获取我的对象函数列表。我一直在阅读“Dive into Python”,以及上述声明:

methodList = [method for method in dir(object) if callable(getattr(object, method))]

成功了。问题是,我不知道它在做什么。对我来说,它看起来像是循环、测试和向列表添加元素的一些极端速记。如果我是正确的,语句的哪一部分做了什么?!

换句话说,有人能把它翻译成英文吗。

最佳答案

另一种看待这个问题的方式:

methodList = []
for method in dir(object): # for every attribute in object
# note that methods are considered attributes
if callable(getattr(object, method)) # is it callable?
methodList.append(method)
return methodList

构造本身是一个带有过滤器的列表理解。

参见:dir() , callable() , getattr() , list comprehensions

关于python - 请解释这个python "for"语句: methodList = [method for method in dir(object) if callable(getattr(object,方法))],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5177919/

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