python - 需要澄清 python 的属性访问及其 dir() 之间的关系

标签 python attributes magic-methods

我没有什么困惑;你可以在图片中看到..我创建了一个类,然后在该类上应用 dir() 来检查该类定义了哪些名称。
然后访问该类的属性;特别是那些以 '__' 开头的,我看到的是一个巨大的属性列表;其中大多数不存在于 dir() 的列表中;
所以我的第一个问题是它们都来自哪里? enter image description here

下面也是我的观察,我为此发布了这个问题。就像
”“” dir(object1) 给我们一个属性列表;可以在 object2(它是 object1 的一个实例)上以 . 的形式在 object2 之后进行访问(应用,如果 object2 可以成为 object1 的实例)(以及为 object2 定义的其他属性)"""
是这样吗??????
让我们检查一下..(我正在使用 ipython 的 qtconsole)

示例 1: type 是其自身的实例。所以我们首先检查类型。您可以在快照中看到列表,如下所示; dir(type) 列表,然后通过在其上放置 . 来获取其属性的下一个输出(对于以 __ 开头的内容,第一个输出)那么这里是一个列表(参见第 55 行);

enter image description here

然后对于所有剩余管理(它只是一个mro);所以将两者结合起来之后;与dir(type)相同 enter image description here

示例 2:让我们创建自己的类

enter image description here第 59 行; (即在 testClass 的实例上)让我们首先访问以 __ 开头的内容,然后访问其他内容:enter image description here 最后结合第59行的这两个结果与dir(testClass)相同。正确的??就在那时;让我们检查另一个例子

示例 3: enter image description hereenter image description here 类似地合并第64行的结果,并将其与示例1的第54行进行比较。

这就是我的观点。这是我的观察;这是正确的吗????我需要 Python 专家对这一观察结果发表任何专家评论。

最佳答案

dir() 显示对象本身的内容,但使用 . 运算符,您还可以访问对象类型的属性。查看 dir(type(testClass)),您可以在其中找到您丢失的内容。

关于python - 需要澄清 python 的属性访问及其 dir() 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515649/

相关文章:

python - Pandas - 列之间的欧几里得距离

python - 合并两个 Pandas 数据框多对一

php - __callStatic 未被调用

python - Python 中是否有可能使用 "catch"魔术方法?

python - 如何编写静态 python getitem 方法?

python - 128 位整数哈希函数

python - 如何在 Theano 上启用并行处理?无 GPU

c# - 在 C# 属性中替换字符串

iphone - iOS 中的 NSFileSystemFileNumber 总是唯一的吗?

r - 有没有办法在 R 中创建 "fragile"属性?