首页 技术 正文
技术 2022年11月20日
0 收藏 945 点赞 3,838 浏览 1671 个字

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

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

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905