如果我想访问对象的实例变量列表,我可以调用myObject.__dict__.keys().我想使用此属性打印出对象的所有实例变量.我这样做是犹豫不决的,因为这__dict__是一个"秘密"属性,我不明白这个脚注的意思.
那么使用它是错误的myObject.__dict__吗?
脚注的含义是您不应该尝试__dict__直接访问,而是检查您想要的功能/行为是否可用.
所以不要做类似的事情:
if "__some_attribute__" in obj.__dict__:
# do stuff
Run Code Online (Sandbox Code Playgroud)
你应该这样做:
try:
obj.some_action_i_want_to_do(...)
except AttributeError:
# doesn't provide the functionality I want
Run Code Online (Sandbox Code Playgroud)
原因是因为不同的对象可能提供对特定操作的不同内部引用,但仍提供所需的输出.
如果要为调试和检查当前对象列出"内部",那么这dir()是正确的方法.