摘要:
一、模板 类模板和函数模板在实际调用时,略有不同:一个需要指定类型,一个不需要 特化:类型固定 template<> 偏特化:本来有两个泛化参数,结果其中一个固定。包括个数的偏特化和范围的偏特化 二、operator new 和malloc 基于list的各种各样的分配器 分配内存的操作,最后都会调 阅读全文
摘要:
一、STL六大部件 容器(Containers):存放元素,内存由分配器搞定 分配器(Allocator):支持容器的内存分配 算法:操作容器元素的函数。与OO不同(面向对象将元素与函数放到一个类里),GP(模板编程)将数据放入容器,操作方法放入算法中。 迭代器(Iterator): 算法和容器之间 阅读全文
摘要:
本节主要说明,对象与对象名称之间的区别。 一、变量不是盒子,而是标签 如图。在赋值语句中,y=A()中,先创建对象A,然后将左边的变量绑定到对象上。变量只不过是标注,因此无法阻止为对象贴上多个标签(别名) 二、标识、相等性和别名 1、对象一旦创建,标识就不会改变,标识可理解为对象在内存中的地址,is 阅读全文
摘要:
一、装饰器的基础知识 1、装饰器是可调用对象,其参数是另一个函数(被装饰的函数)。装饰器会处理被装饰的函数,然后将其返回,或者将其替换成另一个函数或可调用对象。 替换成另一个函数 2、装饰器的两大特性,一是能把被装饰的函数替换成其他函数,二是装饰器在加载模块是立即执行。 二、python何时执行装饰 阅读全文
摘要:
一等对象满足以下条件:运行时创建、能赋值给变量或数据结构中的元素、能作为参数传给函数、能作为函数的返回结果。 整数、字符串、字典以及函数,都是一等对象。 一、把函数视作对象 可以把函数进行赋值调用 二、高阶函数 1、接受函数为参数,或者把函数作为返回结果的函数是高阶函数(high-order)。 如 阅读全文
摘要:
一、泛映射类型 1、标准库里的映射类型都是dict来实现的,它们有个共同的限制,只有可散列的数据才能作为映射里的键; 2、如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的。并且这个对象需要实现__hash__方法, 包含__qe__方法。原子不可变数据类型(str,bytes和 阅读全文
摘要:
1、序列类型包括两类,容器序列和扁平序列 (1)容器序列:list、tuple 和 collections.deque 这些序列能存放不同类型的数据 (2)扁平序列:str、bytes、bytearray、memoryview 和 array.array,这类序列只能容纳一种类型。2、也可分为可变类 阅读全文
摘要:
1、通过实现特殊方法,自定义类型可以表现的跟内置类型一样; 如下代码,实现len, getitem,可使自定义类型表现得如同列表一样。 2、repr和str (1) __repr__所返回的字符串应该准确(%r),无歧义,并且尽可能表达出如何用代码创建出这个被创建的对象,如repr(v);输出Vec 阅读全文
摘要:
install: sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get install sublime-text peizhi: https://www.cnblogs.com/ 阅读全文
摘要:
https://www.cnblogs.com/lanxuezaipiao/p/4132096.html https://www.cnblogs.com/wxquare/p/4759020.html https://blog.csdn.net/leichaowen/article/details/5 阅读全文