第四部分第9章,Python风格的对象

这一章接第1章,说明常见的特殊方法实现。

本章包括以下话题:

  1. 支持用于生成对象其它表示形式的内置函数(如repr()、bytes(),等等)
  2. 使用一个类方法实现备选构造方法
  3. 扩展内置的format()和str.format()使用的格式微语言
  4. 实现只读属性
  5. 把对象变为可散列的,以便在集合中和作为dict的键使用
  6. 利用__slots__节省内存
  7. 如何以及何时使用@classmethod和@staticmethod装饰器
  8. Python的私有属性和受保护属性的用法、约定和局限
    将开发一个简单的二维欧几里得向量类型,在这个过程中涵盖上述全部话题。
    模仿Python标准对象的行为,让Vector的行为符合Python风格。

1. 对象表示形式

面向对象语言至少都有一种获取对象的字符串表示形式的标准形式。Python提供了两种方式。
1.1 repr(): 便于开发者理解的方式返回对象的字符串表示形式。
1.2 str():便于用户理解的方式返回对象的字符串表示形式。
1.3 实现__repr__和__str__特殊方法,为repr()和str()提供支持。
1.4 reprstr、__format__都返回Unicode字符串(str类型)。只有__bytes__方法应该返回字节序列(bytes类型)。

先留坑,过于复杂,直接看

中文电子书P387

Fluent_Python_Part4面向对象,09-pythonic-obj,Python风格的对象的更多相关文章

  1. 第9章 符合Python风格的对象

    #<流畅的Python>读书笔记 # 第9章 符合Python风格的对象 # 本章包含以下话题: # 支持用于生成对象其他表示形式的内置函数(如repr().bytes(),等等) # 使 ...

  2. python 符合Python风格的对象

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 25.0px Helvetica } 对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的 ...

  3. 流畅的python第九章符合Python风格的对象学习记录

    对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式.Python提供了两种方式 repr()便于开发者理解的方式返回对象的字符串表示形式 str()便于用户理解的方式返回对 ...

  4. 流畅的python 符合python风格的对象

    对象表示形式 每门面向对象的语言至少都有一种获取对象的字符串表示形式的标准方式.Python 提供了两种方式. repr() 以便于开发者理解的方式返回对象的字符串表示形式.str() 以便于用户理解 ...

  5. 符合Python风格的对象

    array和bytes的转换 - 每个array必须有一个type_code,以此为依据解析底层字节序列 - array有一个frombytes方法,可以把字节序列按type_code转换成Array ...

  6. 流畅的python学习笔记:第九章:符合python风格的对象

    首先来看下对象的表现形式: class People():     def __init__(self,name,age):         self.name=name         self.a ...

  7. Python风格规范

    Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...

  8. PYTHON风格规范-Google 开源项目风格指南

    Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...

  9. google的Python风格规范

    Python风格规范   分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. ...

随机推荐

  1. css实现移动端滚动条隐藏仍然可以滚动内容

    .g-panel { height: calc(100% - 112px); overflow: auto; &::-webkit-scrollbar { display: none; // ...

  2. AcWing 899. 编辑距离

    #include <iostream> #include <algorithm> #include <string.h> using namespace std; ...

  3. 517,sytlus/sass/less的区别

    均具有“变量”,“混合”,“嵌套”,“继承”,“颜色混合”五大基本特性 scss和less语法较为严禁,less要求一定要使用大括号“{}”,scss和stylus可以通过缩进表示层次与嵌套关系 sc ...

  4. HTML学习(16)颜色

    HTML 颜色由红色.绿色.蓝色混合而成. 颜色值 HTML 颜色由一个十六进制符号来定义,这个符号由红色.绿色和蓝色的值组成(RGB). 每种颜色的最小值是0(十六进制:#00).最大值是255(十 ...

  5. [Note]Splay学习笔记

    开个坑记录一下学习Splay的历程. Code 感谢rqy巨佬的代码,让我意识到了Splay可以有多短,以及我之前的Splay有多么的丑... int fa[N], ch[N][2], rev[N], ...

  6. SARS病毒

    每一道题目皆是一处美丽的风景: 何为科技的力量和程序的思维哦,在这暑假的编程之路上,我要好好地体验一番来嘞! 数学规律是:f(n)=2^(n-1)+4^(n-1).     //递推分析可得!具体过程 ...

  7. Javaweb项目的命名规范

    项目名称:一般是英文 包名:公司域名的倒写,例如com.baidu 数据访问层:dao,persist,mapper 实体:entity,model,bean,javabean,pojo 业务逻辑:s ...

  8. LabVIEW随笔2_毕业了

    08年研究生毕业了,在原来公司的兼职也结束了,开始真正的工作生涯了. 在此,非常感恩我的导师綦院长,体谅我的困楚之处,在我的研究生学习期间给予我的宽容和照顾.不料,2014年,恩师五十有余,却突然离世 ...

  9. web开发一些资源的在线引用地址

    <!-- Bootstrap --> <link rel="stylesheet" href="https://cdn.bootcss.com/boot ...

  10. Servlet继承体系结构

    Servlet如何只定义1个service方法,其它的方法按需求设置 Servlet——接口 ↑继承 GenericServlet——抽象类 ↑继承 HttpServlet——抽象类:推荐使用 Gen ...