###装饰器
‘‘‘
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
原文:http://www.cnblogs.com/plzros/p/5002109.html