【发布时间】:2012-11-09 05:59:52
【问题描述】:
class Base():
def __init__(self, conf):
self.__conf__ = conf
for i in self.__dict__:
print i,"dict"
for i in dir(self):
print i,"dir"
class Test(Base):
a = 1
b = 2
t = Test("conf")
输出是:
__conf__ dict
__conf__ dir
__doc__ dir
__init__ dir
__module__ dir
a dir
b dir
谁能解释一下?
【问题讨论】:
-
我不确定您是如何获得该输出的。
dict和dir来自哪里? -
@kindall 我刚刚修复了代码,
print i,"dict"和print i, "dir" -
据我所知,
__conf__在python中没有特殊含义。您不应该使用变量(或属性)名称__something__,除非您将它用于 python 标准赋予的特殊含义,因为这些变量是 保留 用于未来版本的 python。 -
家族中另一个有用的功能是
vars。当遇到我以前从未见过的class时,我会同时使用dir(t)和vars(t)来发出声音。 -
提问前请search