Python 对象的内部工作原理
1. Python 对象管理
Python 的对象系统是基于字典的实现。
字典是 Python 中最常使用的数据结构,也是最重要的数据类型。
在一个模块(Python 文件中),字典储存所有的全局变量和函数。
输入以下指令可以查看储存当前文件变量或者类属性的字典。
文件名.__dict__
类名.__dict__
#或者
globals()
1.1 类中的对象管理
Python 中的对象系统是在字典上的一个额外层。
假设有一个股票类,其属性值为 name, shares, price
实例一个对象,并查看储存类属性的字典:
>>> s = Stock('GOOG', 100, 490.1)
>>> s.__dict__
{
'name' : 'GOOG', 'shares' : 100, 'price': 490.1 }
由于实例对象被分配在类的self 中,还可以以下方式查看。
self.__dict__
>>>{
'name': 'GOOG',
'shares': 100,
'price': 490.1
}
类字典
__class__#查看类字典
每一个实例对象的属性,储存在自己的私有字典中。
实例字典保存每个实例唯一的实例属性,而类字典保存所有实例共同共享的类属性。
class Foo(object):
a = 13 # Class variable
def __init__(self,b):
self.b = b # Instance variable
>>> f = Foo(10)
>>> g = Foo(20)
>>> f.a # Inspect the class variable (same for both instances)
13
>>> g.a
13
>>> f.b # Inspect the instance variable (differs)
10
>>> g.b
20
>>> Foo.a = 42 # Change the value of the class variable
>>> f.a
42
>>> g.a
42
>>>
1.2 类中的属性访问
Python 中一般使用 . 运算符访问属性与方法。
x