装饰器
#在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。
#本质上,decorator就是一个返回函数的高阶函数
#Python内置的functools.wraps把原始函数的__name__等属性复制到新指向的函数中
偏函数
int('123')
int('123',base=8) #转换成8进制的数字
#functools.partial可以创建偏函数
import functools
int2 = functools.partial(int,base=2)
#functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
#创建偏函数时,实际上可以接收函数对象、*args和**kw这3个参数
#(1)
int2 = functools.partial(int,base=2)
int2('100100')
则说明:
kw = {'base':2}
int('100100', **kw)
PS:
函数对象--->int;
args---->100100;
kw---->base=2
#(2)
max2 = functools.partial(max, 10)
max2(5,6,7)
PS:
函数对象--->max;
args---->10,5,6,7;
模块
作用域
在Python中,是通过_前缀来实现私有函数
面向对象编程
面向对象3大特点: 数据封装、继承、多态
class Student(object):
def __init__(self, name, score): # 初始化属性
self.name = name
self.score = score
def print_score(self): #定义函数
print ('%s: %s' % (self.name, self.score))
yj = Student('YJ', 100) # 实例
lp = Student('LP', 200)
yj.print_score() #实例调用函数
lp.print_score()
PS:Class是一种抽象概念,比如我们定义的Class——Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student
复习JS中的抽象:在构造函数中声明属性,在原型中定义函数