Python进阶学习-类对象魔法

本文详细探讨了Python中的类对象,包括属性、方法、self的概念、魔法方法如__init__、__del__等,以及类和实例对象的区别。还介绍了如何使用isinstance()、issubclass()等内置函数,以及属性访问、迭代器和一元/二元运算符的自定义行为。同时,文章提供了一个实践例子,展示了如何创建一个记录元素访问次数的自定义列表类。
摘要由CSDN通过智能技术生成

学习内容

  1. 对象 = 属性 + 方法
  2. self 是什么?
  3. Python 的魔法方法
  4. 公有和私有
  5. 继承
  6. 组合
  7. 类、类对象和实例对象
  8. 什么是绑定?
  9. 一些相关的内置函数
  10. 基本的魔法方法
  11. 算术运算符
  12. 增量赋值运算符
  13. 属性访问
  14. 描述符
  15. 定制序列
  16. 迭代器

重点实例

类的方法与普通的函数只有一个特别的区别 —— 它们必须有一个额外的第一个参数名称(对应于该实例,即该对象本身),按照惯例它的名称是 self 。在调用方法时,我们无需明确提供与参数 self 相对应的参数。

class Test:
def prt(self):
print(self)
print(self.__class__)
t = Test()
t.prt()
# <__main__.Test object at 0x000000BC5A351208>
# <class '__main__.Test'>

类有一个名为__init__(self[, param1, param2...]) 的魔法方法,该方法在类实例化时会自动调用。

类的私有属性实例

class JustCounter:
__secretCount = 0 # 私有变量
publicCount = 0 # 公开变量
def count(self):
self.__secretCount += 1
self.publicCount += 1
print(self.__secretCount)
counter = JustCounter()
counter.count() # 1
counter.count() # 2
print(counter.publicCount) # 2
print(counter._JustCounter__secretCount) # 2 Python的私有为伪私有
print(counter.__secretCount)
# AttributeError: 'JustCounter' object has no attribute '__secretCount'

类对象:创建一个类,其实也是一个对象也在内存开辟了一块空间,称为类对象,类对象只有一个。

# 类对象
class A(object):
pass

实例对象:就是通过实例化类创建的对象,称为实例对象,实例对象可以有多个。

# 实例化对象 a、b、c都属于实例对象。
a = A()
b = A()
c = A()

类属性:类里面方法外面定义的变量称为类属性。类属性所属于类对象并且多个实例对象之间共享同一个类属性,说白了就是类属性所有的通过该类实例化的对象都能共享。

class A():
a = xx #类属性
def __init__(self):
A.a = xx #使用类属性可以通过 (类名.类属性)调用。

实例属性:实例属性和具体的某个实例对象有关系,并且一个实例对象和另外一个实例对象是不共享属性的,说白了实例属性只能在自己的对象里面使用,其他的对象不能直接使用,因为self 是谁调用,它的值就属于该对象。

class 类名():
__init__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值