在python中将类变量声明为实例变量

时间:2017-11-13 08:33:46

标签: python oop instance-variables class-variables

我正在学习Python中的OOP,并且有一个与类和实例变量相关的查询。

>>> class Something:
...     val = 10
...     def __init__(self):
...             self.instval = 100
...
>>> some = Something()
>>> some.val
10
>>> some.instval
100
>>> dir(some)
['__doc__', '__init__', '__module__', 'instval', 'val']
>>> some.val = 1000
>>> dir(some)
['__doc__', '__init__', '__module__', 'instval', 'val']
>>> some.val
1000
>>> Something.val
10
>>> del some.val
>>> some.val
10
>>> dir(some)
['__doc__', '__init__', '__module__', 'instval', 'val']

在这个课程中,我有val个类变量,instval个实例变量。 我将val类变量声明为1000.所以some.val给了我1000但Something.val仍然给了我10.当我删除some.val时,它会恢复为类变量值。

我知道解释器首先在实例级别查找变量,然后在类级别查找。那么这里发生了什么?

我已经完成了一些答案,我认为this是最合适的,但我并没有完全理解它的含义。

0 个答案:

没有答案