Fluent_Python_Part4面向对象,09-pythonic-obj,Python风格的对象
第四部分第9章,Python风格的对象
这一章接第1章,说明常见的特殊方法实现。
本章包括以下话题:
- 支持用于生成对象其它表示形式的内置函数(如repr()、bytes(),等等)
- 使用一个类方法实现备选构造方法
- 扩展内置的format()和str.format()使用的格式微语言
- 实现只读属性
- 把对象变为可散列的,以便在集合中和作为dict的键使用
- 利用__slots__节省内存
- 如何以及何时使用@classmethod和@staticmethod装饰器
- Python的私有属性和受保护属性的用法、约定和局限
将开发一个简单的二维欧几里得向量类型,在这个过程中涵盖上述全部话题。
模仿Python标准对象的行为,让Vector的行为符合Python风格。
1. 对象表示形式
面向对象语言至少都有一种获取对象的字符串表示形式的标准形式。Python提供了两种方式。
1.1 repr(): 便于开发者理解的方式返回对象的字符串表示形式。
1.2 str():便于用户理解的方式返回对象的字符串表示形式。
1.3 实现__repr__和__str__特殊方法,为repr()和str()提供支持。
1.4 repr、str、__format__都返回Unicode字符串(str类型)。只有__bytes__方法应该返回字节序列(bytes类型)。
先留坑,过于复杂,直接看
中文电子书P387
Fluent_Python_Part4面向对象,09-pythonic-obj,Python风格的对象的更多相关文章
- 第9章 符合Python风格的对象
#<流畅的Python>读书笔记 # 第9章 符合Python风格的对象 # 本章包含以下话题: # 支持用于生成对象其他表示形式的内置函数(如repr().bytes(),等等) # 使 ...
- python 符合Python风格的对象
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } 对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的 ...
- 流畅的python第九章符合Python风格的对象学习记录
对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式.Python提供了两种方式 repr()便于开发者理解的方式返回对象的字符串表示形式 str()便于用户理解的方式返回对 ...
- 流畅的python 符合python风格的对象
对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式.Python 提供了两种方式. repr() 以便于开发者理解的方式返回对象的字符串表示形式.str() 以便于用户理解 ...
- 符合Python风格的对象
array和bytes的转换 - 每个array必须有一个type_code,以此为依据解析底层字节序列 - array有一个frombytes方法,可以把字节序列按type_code转换成Array ...
- 流畅的python学习笔记:第九章:符合python风格的对象
首先来看下对象的表现形式: class People(): def __init__(self,name,age): self.name=name self.a ...
- Python风格规范
Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...
- PYTHON风格规范-Google 开源项目风格指南
Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...
- google的Python风格规范
Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. ...
随机推荐
- AcWing 827. 双链表
https://www.acwing.com/problem/content/829/ #include <iostream> using namespace std; ; int m; ...
- 查看ie版本
window10系统还好说,一般都是IE11版本,其他系统或服务器看=查看ie版本就很烦 方法一:按组合键 ALT+H 打开“帮助”,再按 A 选择“关于Internet Explorer” 方法二 ...
- 通过JMX获取JVM信息
package com.googosoft.gateway_zuul; import java.lang.management.ClassLoadingMXBean; import java.lang ...
- 在网页中插入背景音乐代码(html)
有两种 分别用<bgsound>和<embed></embed>标签,当用<embed>插入背景音乐时可以设置宽度和高度为0,隐藏播放器. 二者的参数如 ...
- linux 压测jmeter24h稳定性测试
环境准备: 安装jmeter,JDK: wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.1.tgz cd ...
- RESTful api设计风格
简介 REST(Representational State Transfer):表象层状态转变 RESTful对api进行规范和约束,使得api统一规范,增强api的可读性,便于开发. 设计 ...
- 空字符串(“”)和null和空格字符串(" ")的区别
1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0,但它是一个字符 ...
- Refusing to install package with name "webpack" under a package
最近学习webpack 知识时 下载依赖结果报了这个错 查阅资料后发现是 这个name 不能使用所需要安装包的名字! 换为其他之后 再次操作命令 就没问题了
- 多表连接面试题:ERROR:Not unique table/alias
class_info id class_name 2 s204 5 s205 1 s207 7 s203 match_info id host_id guest_id match_time mat ...
- C 语言实例 - 约瑟夫生者死者小游戏
30 个人在一条船上,超载,需要 15 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 1 开始,数到 9 的人下船. 如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了 ...