码迷,mamicode.com
首页 > 编程语言 > 详细

python(4)

时间:2015-12-28 06:39:44      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:python   return   包装   

一、装饰器

装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数

比如在函数中增加一个功能,只需要装饰器中增加,然后其他函数去引用就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

python(4)

标签:python   return   包装   

原文地址:http://pythonzhai.blog.51cto.com/10391994/1728878

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!