再看Python基础知识

 1. type 和 object的关系

(1)type 是object的类;(2)type继承了object; (3)type是type自己的类。

所有的类(包括type),除了object都继承自object。【object是所有类的基类,包括type】

2. 一切皆对象

对象对应的就是地址。例如不同类型的变量可以赋值,实现的本质,就是变量指向的是一个内存地址。

3.可变类型与不可变类型

-- 可变类型:字典、列表、集合

--不可变类型:数字、字符串、元组

注意:

(1)字典的key必须用不可变类型,可以hash。

(2)Python中的参数传递:python中参数传递都是copy一份传递过去,由于一切皆对象,传递过去的都是地址。python中区分可变与不可变类型,可变类型在函数中修改会影响原来的,不可变类型,不会影响原来的。

 4.比较运算符(is 和 ==)

is比较的是id(id(值)),双等号比较的是值。

其id相同则值肯定相同,而值相同,其id则不一定相同。

 5.字符编码

bit:比特位,0或者1。

byte:8个bit位(比特位)是一个byte,就是一个字节。

1个字节:在电脑初期,1个字节,2的8次方变化,就可以表示出 欧美 国家所有的字符(数字、字母、标点符号),这就是ASCII编码的由来。随着 电脑的在世界范围的推广,这显然不够。

gbk编码:计算机到了中国,为了更好的兼容汉字,就推出了gbk编码。 

Unicode: 就像它的名字表示的,为世界伤所有的字符都分配了一个唯一的数字编号(戏称万国码)。这个编号范围从0x000000到0x10FFFFF(十六进制),有110多万,每个字符都有一个唯一的Unicode。换句话说,Unicode ,在世界范围,统一了字符和数字的对应关系。16进制,就是4个字节。

utf-8(全称Unicode Transformation Format,即unicode的转换格式),utf-8是不定长的。存储中,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少字节。可以说,utf-8定义Unicode在硬盘上的具体存储方式。

那为何在内存中不直接使用utf-8呢?

utf-8是不定长的:一个英文字符占1Bytes,一个中文字符占3Bytes,生僻字用更多的Bytes存储
 
也就意味着如果用户输入的字符是:你y好,在内存中需要先经历计算的过程:“你”应该用3Bytes,“y”应该用1Bytes,“好”应该用3Bytes,
然后才能存储,所以内存中如果直接使用utf
-8格式去存储字符,耗费的总时间=计算时间+存储时间,而内存中使用定长的unicode格式存储字符,就省去了计算时间,
所以内存中使用unicode来存储字符会浪费空间,但是会提升速度,这是一种用空间换时间的方法

更多内容请参阅--https://www.cnblogs.com/liuqingzheng/articles/17386883.html

 6.闭包函数

闭包(closure)指的是在函数内部定义了另外一个函数,并返回了这个内部函数作为函数对象,同时还保存了外层函数的状态信息。这个内部函数可以依赖外层函数的变量和参数,而且外层函数返回的是这个内部函数的引用。这种在函数内部定义函数并返回的方式称为闭包。

(1)定义在函数内部;

(2)对外部作用域有引用(使用到了外部作用域的变量)。

【思想:在Python语言中,函数是一等公民,可以赋值给一个变量。】

装饰器是闭包函数的典型应用。

 

热门相关:治愈性冷淡   夜班私生活   搞定朋友儿子的阿姨   我是新婚你再婚   有点生疏的20岁素拉