【流畅的python】笔记(P1序幕)自测知识点和书籍补充
2020-07-02 16:49
309 查看
文章目录
- C1 py数据模型
- 1.1 一摞Python风格的纸牌
- __getitem__用法
- ps:namedtuple
- 自测
- 答案
- 自测
- 答案
- 自测
- 答案
- 自测
- 答案
希望看完这本书写的代码好看~~
C1 py数据模型
py中下划线
1.1 一摞Python风格的纸牌
__getitem__用法
这里的__getitem__是对元素索引的封装,
和__len__是对len的封装。
调用方法,看代码即可,所以文字没有截图截完。
实现了gettitem可以进行迭代索引和切片,还可以用in来判断是否在其中。
ps:namedtuple
可以将namedtuple理解为c中的struct结构,其首先将各个item命名,然后对每个item赋予数据。用以构建只有少数属性但是没有方法的对象,比如数据库条目。
1.2 如何使用特殊方法
自测
1. 特殊方法可以直接用调用函数的方法调用吗?
** 2. Py 内置的类型底层实现是python原生语言还是cpython【】**
3. 为什么不建议代码中随意添加特殊方法?
答案
- 不可以,只能显示或者隐式的调用。也就是说没有 my_object.len() 这种写法,而应该使用 len(my_object) 。在执行len(my_object) 的时候,如果 my_object 是一个自定义类的对象,那么 Python 会自己去调用其中由你实现的 len 方法
- cpython
- 不要自己想当然地随意添加特殊方法,比如 foo 之类的,因为虽然现在这个名字没有被 Python 内部使用,以后就不一定了
1.2.2 字符串表示形式
自测
1. 实现了__repr__和 str 会在什么时候被引发
2.repr或者str谁更强大?
3. 目前有哪三种格式化字符串方法
答案
-
repr 和 str 的区别在于,_repr__在交互式环境可使用。后者是在 str() 函数被使用,或是在用 print 函数打印
一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好 -
如果你只想实现这两个特殊方法中的一个, repr 是更好的选择,因为如果一个对象没有 str 函数,而 Python 又需要调用它的时候,解释器会用 repr 作为替代。
前者方便我们调试和记录日志,后者则是给终端用户看的。这就是数据模型中存在特殊方法 repr 和 str 的原因。
这里只实现了repr可以看到,它确实能交互式的显示,也可以直接被print,也可以用str.哈哈!厉害吧!
换成str呢?
- %:python程序员更喜欢这种,因为简单
f‘{}’python3.6后才有。
format ,作者说它喜欢这种
1.3 特殊方法一览
自测
1. 增值赋值运算符做了什么,特殊方法以什么开头?
答案
- 增量赋值运算符则是一种把中缀运算符变成赋值运算的捷径( a = a * b 就
变成了 a *= b )。以i开头,如
1.4 为什么 len 不是普通方法
自测
1. 增值赋值运算符做了什么,特殊方法以什么开头?
答案
- 增量赋值运算符则是一种把中缀运算符变成赋值运算的捷径( a = a * b 就
变成了 a *= b )。以i开头,如
相关文章推荐
- python学习笔记-Day17 (上节知识点补充)
- 流畅的python笔记2.2 列表推导式和生成器表达式
- 流畅的python学习笔记
- Python学习笔记-入门基础补充
- python语法和面向对象补充-学习笔记整理
- 推荐书籍《流畅的Python》
- 流畅的python学习笔记第一篇之为什么要学习这本书
- 《The Python Tutorial》中知识点补充
- 学习笔记(01):Python入门教程-上章补充-bytes类型
- 流畅python学习笔记:第十九章:动态属性和特性
- python网络编程学习笔记(五):socket的一些补充
- python学习笔记分享(二十五)python学习笔记分期补充(三)变量,对象,参数,输入和输出,file对象和os模块
- 流畅的python学习笔记第八章:深拷贝,浅拷贝,可变参数
- Python学习笔记(知识点学习链接)
- python小知识点笔记
- 流畅python学习笔记:第十七章:并发处理二
- python3学习笔记:零碎知识点
- 流畅的python学习笔记:第五章
- 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结
- python学习笔记分享(二十三)python学习笔记分期补充(一)编码,keyword模块,多条语句,代码组,导入模块,_h,调用解释器,多变量赋值,六大数据类型,数字类型转换,False,运算符