一、装饰器
装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数
比如在函数中增加一个功能,只需要装饰器中增加,然后其他函数去引用就OK
(1)定义装饰器但没引用
代码: def outer(fun): #定义装饰器 def wrapper(): fun() print ‘yanzheng‘ return wrapper @outer #链接上装饰器 def func1(): print ‘func1‘ func1() 结果: func1
(2)定义装饰器并引用
代码: def outer(fun): #定义装饰器 def wrapper(): print ‘新功能1‘ #添加新功能1,写在fun()上边就是在上边 fun() print ‘新功能2‘ #添加新功能2,写在fun()下边就是在下边 print ‘yanzheng‘ return wrapper @outer #链接上装饰器 def func1(): print ‘func1‘ func1() 结果: 新功能1 func1 新功能2
(3)如果函数中有其他参数
代码: def outer(fun): def wrapper(arg): #如果被装饰的函数中有其他参数的话就在这里加上 print ‘验证‘ fun(arg) #如果被装饰的函数中有其他参数的话就在这里加上 print ‘yanzheng‘ return wrapper @outer def func1(arg): #这里有参数 print ‘func1‘,arg func1(‘hello‘) 结果: 验证 func1 hello yanzheng
二、面向对象
面向对象包括:封装、继承、多态
面向对象术语:类,类对象,实例对象,属性,函数和方法
(1)类和对象
代码: class Province: #叫做类 memo = ‘中国的23省之一‘ #叫做静态字段,通过类获取,属于类 def __init__(self,name,shenghui): #叫做类的方法,sefl是必须有的不变,后边的可有可无 self.Name = name #叫做动态字段,用self获取的 self.Shenghui = shenghui a = Province(‘河北‘,‘唐山‘) #河北对应name,唐山对应shenghui,相当于实例化了一个对象a,然后就可以通过a来读取属性了 print a.Name #通过a来读取属性 print a.Shenghui print Province.memo 结果: 河北 唐山 中国的23省之一
本文出自 “翟军铭python” 博客,请务必保留此出处http://pythonzhai.blog.51cto.com/10391994/1728878
原文地址:http://pythonzhai.blog.51cto.com/10391994/1728878