-
import time def performance(f): #3333333333扔到这来 def fn(*args, **kw): #5555555555这里取传入函数的参数 t1 = time.time() #6666666666记录当前时间 r = f(*args, **kw) #77777777777777这里是调用传入的那个函数,赋予r t2 = time.time() #8888888888888888记录结束时间 print 'call %s() in %fs' % (f.__name__, (t2 - t1)) #99999999999999打印时间差 return r #111111100000000000000原函数输出 return fn #444444444直接返回 @performance #22222222222把下面这个函数扔进@后面这个函数里 def factorial(n): #11111111111这是自定义的一个函数 return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)
查看全部 -
print add(25,9,sqrt)查看全部
-
不会查看全部
-
偏函数:减少参数个数
例:转换多个二进制字符串
方法1:定义函数转换
def int2(x,base=2):
return int(x,base)
方法2:使用functools.partial创建偏函数,不用定义int2(),不用return
import functools
int2=functools.partial(int,base=2)
查看全部 -
gcd表示取得最小公约数
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)def __init__(self, p, q):
g = gcd(p, q)
self.p = p/g
self.q = q/g查看全部 -
打印日志:@log
检测性能:@performance
数据库事务:@transaction
URL路由:@post('/register')
查看全部 -
python内置的@语法是为了简化装饰器调用
@new_fn
def f1(x):
return x*2
等同于
def f1(x):
return x*2
f1=new_fn(f1)
查看全部 -
python中判断类型
函数isinstance( )可以判断一个变量的类型。既可以用在python内置的数据类型str,list,dict,也可以是我们自定义的类,他们本质都是数据类型。
查看全部 -
pyhton中的继承
一定要用super(Stident,self).__init__(name,gender)初始化父类,否则继承的student将没有name和gender。
函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
查看全部 -
python中定义类方法
和属性类似,方法也分实例方法和类方法
在class中定义的全部是实例的方法,实例方法的第一个参数self是实例本身。
通过@classmethod将该方法绑定到Person类上,而非类的实例。
类方法的第一个参数将传入类本身,通常将参数命名为cls,上面的cls.count实际上相当于person.count。
因为实在类上调用,而非实例调用,因此类方法无法获得任何实例变量,只能获得累的引用
查看全部 -
python中的方法也是属性
class中定义的实例方法其实也是属性,实际上是一个函数对象。
types.MethodType() 把一个函数变为一个方法
查看全部 -
python中定义实例方法
私有属性:_开头的属性
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。除了可以定义实例的属性外,还可以定义实例的方法。
实例的方法:在类中定义的函数,它的第一个参数永远是self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的。
查看全部 -
__call__ 把实例当函数使用时,提供方法的属性
查看全部 -
匿名函数lambda
匿名函数 参数:表达式 例:lambda x:x*x
只能有一个表达式 不写return 返回值就是表达式的结果
不用定义函数名 直接创建一个函数对象
返回函数的时候,也可返回匿名函数
例:myabs=lambda x:-x if x<0 else x
>>>myabs(-1)
1
查看全部 -
python中创建类属性
实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。
查看全部
举报