对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展
对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展 《Effective Python》一书结合Python的语言特性,对代码规范进行了详细总结,是一本非常不错的Python实操指南。但我在阅读的过程中发现有些地方仅仅是告知读者“怎么做”,但是具体“为什么”不是很深入。下面内容是我对这些知识点的总结和相应原理的扩展。 (如有不准确之处欢迎指正) Python版本问题,略。 关于PEP8:这是Python代码风格的一些规范,感兴趣的同学可以自行了解。 在Python3中,bytes和str是两种截然不同的类型: bytes是计算机原始的二进制格式,而str是包含Unicode字符的,开发者不能以+号之类的操作符直接对它们两个进行混合操作。 实际上,它们互相之间是编码(encode)与解码(decode)的关系。 >>> s = "哇哈" >>> b = bytes(s,encoding="utf-8") # encode >>> print(s) 哇哈 >>> print(b) b'\xe5\x93\x87\xe5\x93\x88' 可以看到,s是str类型,返回的依旧是人类能懂的文字,而b则返回的实际上是6个16进制,每一个代表一字节。 注意,在bytes函数中使用了encoding参数并且赋值"utf-8"。为什么呢