gpt4 book ai didi

python - python 中的 'object' s 属性是什么?

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

我正在学习 python,正在教授的内置函数之一是 dir() —— 类(class)将其描述为 “返回对象的有效属性的目录”, ' 但对象的属性是什么?

我想我在返回的属性列表中看到一些成员函数,__len__ 我假设指的是 len(),但是列出的所有这些其他东西是什么?

Course description

另外,它可以不完整是什么意思?

这是我的第一个问题,如果我没有花 45 分钟来弄清楚这个问题,我就不会问这个问题。

最佳答案

您混淆了一些事情,并且可能对一些令人困惑的事情感到困惑。

__len__ 不是指 len(),而是 len(something) 将调用 __len__ 方法某事。任何具有 __len__ 方法的对象都可以通过调用 len(something) 来询问其长度。请注意这与 something.len() 有何不同,以及它比 something.__len__() 更易读。

Python 中对象的属性包括您通常认为的它的属性,以及它的所有属性和方法名称。所以对于这个例子:

class T:
def __init__(self):
self.x = 10

def afunc(self):
return 20

@property
def y(self):
return self.x

T 的任何实例都将在其属性中包含 xafuncy。对象的属性还包括其基类的所有属性(以及它继承自哪些类),最终始终包括 object 的属性。

关于它不完整的评论是在引用没有 __dir__ 属性的对象时由 dir() 函数调用的。在这些情况下,dir() 函数将查看其 __dict__ 属性(如果可用),因此它可能不会提供完整的属性列表 - 请注意,这大多数对象并非如此。

关于python - python 中的 'object' s 属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55114133/

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