Python 对象的内部工作原理

本文详细探讨了Python对象的内部工作机制,包括基于字典的实现、对象管理、属性访问和继承。在对象管理中,重点讲述了实例字典与类字典的区别,以及如何访问和修改属性。在封装方面,讨论了共有与私有属性的概念,装饰器语法的应用,以及如何利用@property保护和限制属性的访问。
摘要由CSDN通过智能技术生成

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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Not_Today.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值