Python类的特殊方法和属性介绍

Python中的类是面向对象编程的重要组成部分,而特殊方法和属性则是类中非常重要的一部分。特殊方法,也被称为魔术方法,通过使用特殊方法,我们可以将类变成字典、字符串,实现各种高级和简洁的程序设计模式。本文将介绍Python类的特殊方法和属性。
特殊属性
在Python中,以双下划线开头和结尾的属性被称为特殊属性。以下是一些常见的特殊属性:
name: 对象的名称,例如类型(type, class)对象的名称是系统内置的或自定义的名称字符串,类型的实例通常没有__name__属性 .

bases: 元组,包含类型对象(type, class)的全部基类,类型的实例通常没有__bases__属性 .

class: Python对象,表示实例或类型所属的类型,其值等于type(x) .

dict: 字典,除了一些特殊的属性,实例、类型等对象的所有属性都放置在__dict__字典中.
特殊方法
特殊方法是类中以双下划线开头和结尾的方法,当对这些对象执行特定的运算时,Python会自动调用这些实例的特殊方法,从而实现运算符的重载。

以下是一些常见的特殊方法:
1.new(cls[, args…]): new()是一个静态方法,用于根据类型创建实例。Python在调用__new__()方法获得实例后,会调用这个实例的__init__()方法,然后将最初传给__new__()方法的参数都传给__init__()方法.
2.init(): init()是一个实例方法,用于在实例创建完成后进行必要的初始化。Python不会自动调用父类的__init__()方法,需要额外的调用super(C, self).init()来完成 .
3.del(self): 在垃圾回收之前,Python会调用这个对象的__del__()方法完成一些终止化工作。定义了__del__()方法的实例无法参与到循环垃圾回收中,应该避免循环引用 .
4.repr(self): 返回对象的字符串表示形式,主要用于交互式解释器的显示和eval(repr(x)) == x的要求 .
5.str(self): 返回对象的简洁的字符串表达形式,用于str()函数和print(x)语句 .
6.unicode(self): 返回对象的Unicode表示形式,优先级高于__str__()方法 .
7.lt(self, other): <运算符的实现 .
8.le(self, other): <=运算符的实现.
9.gt(self, other): >运算符的实现 .
10.ge(self, other): >=运算符的实现.
11.eq(self, other): ==运算符的实现.
12.ne(self, other): !=运算符的实现 .
13.cmp(self, other): 对于比较操作,如果对应的特殊方法没有定义或返回NotImplemented,则会调用__cmp__(self, other)再进行一次尝试 .
14.hash(self): 返回对象的哈希值,用于hash()函数、字典的键和集合的成员.
这些特殊方法和属性可以让我们在类中实现各种高级的功能,如运算符重载、自定义对象的字符串表示形式等。
你学废了吗?

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值