python Day5

###装饰器

'''

def f1(arg):

         #print 'auth'

         arg()

        

def func():

         print '123'

        

f1(func)

'''

 

def auth(arg):

    def inner(arg1):

        print "hello %s" % arg1

        arg()

    return inner

 

@auth      #装饰器执行了2步  第一步将a1代入到函数auth(a1)  第二步将结果retur给a1=auth(a1)

def a1():

    print "a1"

 

'''

a1()

print inner

print auth(a1)

a1 = auth(a1)

'''

a1('a2')

 

==================================================================

def login(key):

    localkey = 'aassdd123'

    if localkey == key:

        return True

    else:

        return False

 

 

def auth(func):

    def inner(*args,**kwargs):

        userkey = kwargs.pop('token')

        re_login = login(userkey)

        if not re_login:

            print 'error'

            return 'error'

        print 'before'

        temp = func(*args,**kwargs)

        print 'after'

        return temp

 

    return inner

 

@auth

def flist(*args,**kwargs):

    slist = ['11','22','33']

    print slist

    return slist

 

#a1()

#a1 = auth(a1)

#print a1

 

key = 'aassdd123'

flist('a2',token=key)

 

 

1 装饰器是一个函数

2 执行装饰函数 代入被装饰函数 并将返回结果重新赋值于被装饰函数

3 动态参数,可以装饰含有N个参数的函数

4 函数返回值

5 多装饰器  盒子模型

6 至少三层

 

 

###递归

def shulie(a1,a2):

    if a1 == 0:

        print a1

        print a2

    a3 = a1 + a2

#    print a3

    ll.append(a3)

    if a3 >= 1000:

 #       print a3

        return a3

#    print ll

    return shulie(a2,a3)

ll = [0,1]

print shulie(0,1)

#print ll

 

###模块

实现某功能,且是实现的所有代码的集合

存在方式 1 py文件  2 文件夹 包含__init__.py

import sys

sys.argv

 

from sys import argv

argv

 

from sys import argv as alias

alias   ===> argv

 

#模块的默认路径

import sys

sys.path

 

posted @ 2015-11-28 02:27  plzros  阅读(119)  评论(0编辑  收藏  举报