编码,深浅copy

encode,decode在python2中使用的一些迷糊,python3中更容易理解

要理解encode和decode,首先我们要明白编码,字符和二进制的相关概念,简单来说,计算机的产生和设计只能进行二进制的运算,聪明的先辈们发明了ASCii编码用不同的二进制来表示不同英文字符实现.后来由于各国计算机的普及和推广,由于语言的原因产生了:Unicode,GB2312,UTF-8等不同的字符编码集.

在python3中对字符数据是使用的str类型,二进制数据使用的是bytes.而我们要让计算机能够处理字符串就必须能将字符转换为二进制数据(我们在idle中编写的代码这个步骤由解释器处理了).有时候为了我们在编写代码时能灵活的处理数据,就需要字符和二进制数据的转换.就产生了encode和decode方法,两者的关系如下:

编码是将字符串转换成字节码. 解码是将字节码转换为字符串. 在python中运行得到结果:

最后: 1, 通过查看encode和decode源代码默认使用的是UTF-8编码集(其它编码用),而python解释器默认使用Unicode编码集.所以知道为什么有时候编写程序的时候全是乱码. 2, 关于为什么输出的是.这个又涉及到二进制和16进制的转换了,我猜想应该是Unicode是使用16进制来记录二进制.

深浅copy

浅copy的方式,浅copy也是一种面向对象的实现,初学者可以这样去理解浅copy只是复制了对象的内存地址,对于一些复杂的数据类型对象使用的内存地址进行. 当列表中包含一个子列表时,复制的也是这个子列表的内存地址.

这时候我们假如human是同一个生日的同学类型.他们的name属性不一致,但是随着时间的变化,年龄都会增长,所以他们的age的变化都会一致

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171215G0Z2BZ00?refer=cp_1026

扫码关注云+社区