前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-面向对象速查表-内置方法-内置函数-内置属性(只整理了部分内容)

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

作者头像
suwanbin
发布2019-09-26 10:13:18
5290
发布2019-09-26 10:13:18
举报

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

类的内置函数(继承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的子类

越来越感觉时间不够用了,要加油呀! 一寸光阴一寸金,寸金难买寸光阴。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类的内置函数(继承object的,自己重写)
  • 类的内置属性(直接就可以调用的)
  • 面向对象相关内置方法(python解释器内置方法)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档