1、概览看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类。 1.1、__str__() 和 __repr__()&nb
分类:
编程语言 时间:
2018-05-16 11:01:22
阅读次数:
225
1、为实例绑定方法# 定义一个函数>>> def set_age(self, age): # 定义一个函数作为实例方法... self.age = age# 为实例绑定方法>>> from types import MethodType>>> s.set_age = MethodType(set_age, s) # 给实例绑定一个方法# 为类绑
分类:
编程语言 时间:
2018-05-16 10:58:03
阅读次数:
129
一个子类可以有多个父类。这就叫多重继承。通过多重继承,一个子类就可以同时获得多个父类的所有功能。1.1、Mixin在设计类的继承关系时,通常,主线都是单一继承下来的。通过多重继承,而给某个类添加额外功能。这种设计我们称为Mixin定义 Mammal 类class Mammal(Object):pass定义 Runable 类class Runnable(object):def run(self):
分类:
编程语言 时间:
2018-05-16 10:52:10
阅读次数:
190
1、概览装饰器可以帮助我们为已经存在的对象添加额外的功能装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事物处理、缓存、权限校验等场景。1.1、为now函数 加一行日志# 定义now函数def now():print(‘2018-5-8‘)# 编辑decorat
分类:
编程语言 时间:
2018-05-16 00:45:14
阅读次数:
200
1、函数作为返回值高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。# 累加函数def external(*args):??? def internal():??????? ax = 0??????? for n i
分类:
编程语言 时间:
2018-05-16 00:43:18
阅读次数:
154
静态方法 类方法 属性方法 一、静态方法 可以利用@staticmethod装饰器把一个方法变成一个静态方法。静态方法不可以方法实例变量或者类变量,也就是说不可以使用self.属性这样子调用实例属性了。其实静态方法就和类本身没什么关系了,它和类 唯一的关联就是需要通过类名来调用这个方法。 错误调用方 ...
分类:
编程语言 时间:
2018-05-16 00:41:42
阅读次数:
271
1、概览关键字lambda表示匿名函数list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))# 列表生成式中的 lambda 实际就是def f(x):return x * x但匿名函数有个限制,就是只能有一个表达式。匿名函数不用写return,返回值就是该表达式的结果匿名函数因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数
分类:
编程语言 时间:
2018-05-16 00:35:48
阅读次数:
145
1、概览
偏函数(Partial
function)是functools模块的一个功能
functools.partial的作用就是,在一个已存在的函数基础上。把它的某些参数给固定住(也就是设置默认值),然后返回一个新的函数,调用这个新函数会更简单。
?
1.1、functools. partial 应用
已知:
int 函数可以将
‘123’ ——》 123.
int 的 base
参数
分类:
编程语言 时间:
2018-05-16 00:26:58
阅读次数:
203
1、概览为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为一个模块(Module)1.1、使用模块的好处提高了代码的可维护性当一个模块编写完毕,就可以被其他地方引用避免函数名和变量名冲突。相同名字的函数和变量可以分别存在不同的模块中1.2、python组织模块的方法为了避免模块名冲突,Python又引入了按目
分类:
编程语言 时间:
2018-05-16 00:26:51
阅读次数:
263
python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性 。 例如,我们定义一个函数 如果除数second=0,那代码就会抛异常,ZeroDivisionError ...
分类:
编程语言 时间:
2018-05-15 19:33:17
阅读次数:
160