python-面向对象速查表-内置方法-内置函数-内置属性(只整理了部分内容)

今日临时总结的内容,可能还有些不正确的地方,初步当做个速查表吧。

类的内置函数(继承object的,自己重写)

内置函数执行时机注意点调用案例
__init__实例化对象时不允许写返回值(return None和不返回没区别)
子类重写了__init__()方法要在子类中的__init__()方法调用父类的__init__方法(super(当前类, self).__init__(参数)
stu = Student()
__new__类实例化被调用时stu = Studetn()
__call__调用对象时要记得调用父类的stu(__call__方法的参数)
__str__对象转为字符串时必须return 字符串类型的返回值(默认返回值时类型+地址,没啥意义)print(stu)
__del__对象删除时(手动或程序结束、垃圾回收机制)del stu
__getattr__ ( . 方法原理)用 .访问属性时该属性不存在才执行,有__getattribute__方法会先执行__getattribute__方法stu.gaewfg
__setattr__ ( . 方法原理)用 .新增/修改属性时执行stu.sex = 'male'
__delattr__ ( . 方法原理)用del 对象.属性 删除属性时,执行属性 被删除时才执行del stu.age
__getattribute__用 .访问属性时不管该属性有没有都会执行,写了这个方法后__getattr__需要自行调用stu.age
__getitem__ ( [] 原理)用 [属性名] 访问属性时stu[age]
__setitem__ ( [] 原理)用 [属性名] = 修改或新增属性时stu[age] = 18
__delitem__ ( [] 原理)用 [属性名] 删除属性时del stu[age]
__gt__ __ge__ __eq__ __ne__ __lt__ __le__ 比较运算符(自定义比较规则)调用对应的比较符时__gt__ 和 __lt__ 这样的只需要指定一个即可stu1 > stu2
__iter__ _next__ 迭代器协议当成迭代取值对象时for i in stu: ...
__enter__ __exit__ 上下文管理跟在 with 后面时with MyOpen(__enter__ 的参数) as m:

类的内置属性(直接就可以调用的)

属性作用注意点案例
__dict__返回调用者自身的名称空间stu.__dict__
__class__返回当前调用对象的类
__slots__指定该类对象能所能拥有的全部属性,减少内存开销会将类对象的属性给限制死,视情况使用,连__dict__都会被省掉__slots__ = ['name'] # 加了以后再添加属性就不行了,限制属性
类.mro()获取到类的mro 列表,即类的查找顺序python3中才有这个方法
类.__name__返回类的类名class_name = stu.__class__

面向对象相关内置方法(python解释器内置方法)

函数作用注意点案例
hasattr()判断某个对象是否存在某个属性返回值是True / Falsehasattr(p, 'age')
getattr()从对象中取出值第三个位置默认值,不存在时返回默认值getattr(p, 'age', None)
setattr()为对象添加、修改属性setattr(p, 'name', 'jackson')
delattr()删除对象属性delattr(p, 'school')
locals()获取当前名称空间内的所有名字直接修改无效类的初始化函数初始化属性(__init__)
isinstance()判断一个对象是不是某个类/某几个类的实例第二参数可以传元组,返回值为 True/ Falseisinstance(obj1, (int, Student)) obj1是int 类型或者 Student 类型?
issubclass()判断一个类是不是另一个类的子类issubclass(type(obj), Animal) 对象obj 的类 是不是Animal的子类

越来越感觉时间不够用了,要加油呀!

一寸光阴一寸金,寸金难买寸光阴。

转载于:https://www.cnblogs.com/suwanbin/p/11409974.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值