我几乎没有困惑;你可以在图片中看到..我创建了一个类,然后在这个类上应用dir()
来检查这个类定义了哪些名称。
然后访问该类的属性;特别是以'__
'开头的那些,我看到的是一个巨大的属性列表;其中大多数都不在dir()
列表中;
所以我的第一个问题是它们来自哪里?
下面是我发表此问题的观察结果。就像
一样
“””
dir(object1)
为我们提供了一系列属性;可以在object2
之后object1
(此为.
的实例)访问object2
后object2
(如果object1
可以成为object2
)的实例(以及为example 1
定义的其他属性)“”“是这样的??????
让我们检查..(我正在使用ipython的qtconsole)
type
:
type
就是其中的一个例子。所以我们先检查dir(type)
。您可以在快照中看到列表,如下所示; .
的列表,然后通过在__
上放置line 55
来获取其属性的下一个输出,(对于那些以mro
开头的那些),那么这里是一个列表(参见{{ 1}});
然后是所有的再生(只有一个dir(type)
);结合两者后;与example 2
相同
line 59
:让我们创建自己的类
在testClass
; (即在__
的实例上)允许首先访问以line 59
开头的内容,然后访问其他内容:
最后将dir(testClass)
的这两个结果与example 3
相同。对??就在那时;让我们看另一个例子
line 64
:
和
并且类似地组合line 54
的结果并将其与示例1的{{1}}进行比较。
这就是我的意思。我的观察;这是正确的吗????我要求python大师对此观察发表任何专家评论。
答案 0 :(得分:2)
dir()
显示对象本身的内容,但使用.
运算符,您还可以访问对象的类型属性。看看dir(type(testClass))
,你会找到你遗失的那些。