摘要:于是打算看一下流畅的。第一章是讲数据模型,主要是的魔术方法特殊方法,它们以双下划线开头和结束,能让我们自己写的类拥有类似内置对象那样的属性和方法。第三个出场的的是,把对象用字符串的形式表示出来。第六个是,用于实现自己定义的布尔值。
接触 Python 有一段时间了,但是到现在也没怎么用 Python 写过一些有用的东西。基础虽然还行,但更深入的就不怎么了解了。于是打算看一下《流畅的 Python》。
第一章是讲数据模型,主要是 Python 的魔术方法(特殊方法),它们以双下划线开头和结束,能让我们自己写的类拥有类似 Python 内置对象那样的属性和方法。
首先出场的是__getitem__和__len__。有了__getitem__方法,我们写的类就能实现类似列表那样的索引形式,如obj[0],同时还能进行迭代和切片。而实现了__len__之后,就可以使用 Python 内置的函数len()来获取对象的长度,len()调用的就是__len__方法。
特殊方法是由 Python 解释器去调用的,我们只需使用 Python 内置的方法就好。__init__除外,我们会使用的多。
想要将一些 Python 内置的函数用到我们写的类中,只需实现对应的特殊方法就行。第三个出场的的是__repr__,把对象用字符串的形式表示出来。当没有实现__str__时,调用str()函数会回退到调用__repr__。
之后是__and__和__mul__,分别对应 Python 的+和*操作符。
第六个是__bool__,用于实现自己定义的布尔值。
有的内置方法对于内置的对象,可能不需要调用任何方法,而是直接返回对象的某个值。len()函数就是如此,提高了效率,又兼容了,用户自定义的类。
之前也接触过特殊方法,但是没有细究,现在算是理解更深了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41569.html
摘要:第一章数据类型隐式方法利用快速生成类方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collections Card = collec...
摘要:第一章数据类型隐式方法利用快速生成字典方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...
摘要:前言数据模型其实是对框架的描述,它规范了这门语言自身构件模块的接口,这些模块包括但不限于序列迭代器函数类和上下文管理器。上述类实现了方法,它可用于需要布尔值的上下文中等。但多亏了它是特殊方法,我们也可以把用于自定义数据类型。 《流畅的Python》笔记。本篇是Python进阶篇的开始。本篇主要是对Python特殊方法的概述。 1. 前言 数据模型其实是对Python框架的描述,它规范了...
摘要:魔术方法的解释器遇见魔术方法时会激活一些基本的对象操作方法例如,获取字典的元素,其背后实现的时方法输出了自定义的的内容,说明内部调用了方法构建只要属性没有方法的对象实现自定义对一个对象进行操作,会调用对象的方法和结合使用以下方法均可重写,使 魔术方法 __getitem__ python的解释器遇见魔术方法时会激活一些基本的对象操作方法例如,obj[key]获取obj字典的key元素...
阅读 1147·2021-11-24 10:43
阅读 3101·2021-11-22 09:34
阅读 3549·2021-10-08 10:04
阅读 3931·2021-09-23 11:58
阅读 3114·2019-08-30 15:44
阅读 482·2019-08-30 13:01
阅读 1155·2019-08-28 18:07
阅读 1446·2019-08-26 13:42