为什么Exception
(及其派生)类不像其他类一样将实例属性填充到__dict__
特殊属性上?在
例如,从object
类派生的类将实例属性存储在__dict__
属性上:
class TestClass(object):
def __init__(self, *args):
self.args = args
test = TestClass(1,2,3)
print(test.__dict__)
print(test.args)
>>>> {'args': (1, 2, 3)}
>>>> (1, 2, 3)
但是,Exception
类有不同的行为:
我希望能够在__dict__
特殊属性中看到对象的所有属性,所以我对此感到困惑。在
在Python 2.7中,至少:
args
不是一个实例变量;它是一个描述符,这意味着它是一个当您试图访问Exception().args
时调用的函数。在相关问题 更多 >
编程相关推荐