-
import time def performance(prefix): def log(f): def fn(*args,**kw): t1 = time.time() r = f(*args,**kw) t2 = time.time() t = (t2 - t1) * 1000 if prefix == 'ms' else (t2 - t1) print 'call %s() function in %f %s' % (f.__name__, t,prefix) return r return fn return log @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
import time def performance(unit): def performance_decorator(f): def wrapper(*args,**kw): print 'call %s() %s' %(f.__name__,unit) return f(*args,**kw) return wrapper return performance_decorator @performance('ms') def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
import time def performance(f): def fn(*args,**kw): print 'call',f.__name__,'()in:',time.time() return f(*args,**kw) return fn @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
import time def performance(f): def fn(*args,**kw): # print 'call factorial() in :',time.time() return f(*args,**kw) return fn @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
在Python中,函数其实是一个对象. 所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()查看全部
-
由于Python是动态语言,任何实例在运行期都可以动态地添加属性。 __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。 注意逗号查看全部
-
因为Python支持高阶函数,在函数式编程中我们介绍了装饰器函数,可以用装饰器函数把 get/set 方法“装饰”成属性 注意: 第一个score(self)是get方法,用@property装饰,第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品。 说明对 score 赋值实际调用的是 set方法。如果没有定义set方法,就不能对“属性”赋值,这时,就可以创建一个只读“属性”。 用 @property 修饰 grade 的 get 方法即可实现只读属性。查看全部
-
嵌套太多,代码是简洁了,但是理解起来也挺吃力的。。。有啥方案?查看全部
-
像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。查看全部
-
内部函数可以直接调用外部函数的变量查看全部
-
返回函数延迟计算——惰性计算,函数式编程的特点查看全部
-
一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。查看全部
-
如果要把 Rational 转为 int,要让int()函数正常工作,只需要实现特殊方法__int__() 也就是说如果要对一个对象进行int操作,需要该对象实现__int__魔术方法。查看全部
-
1,有理数计算,p、q 都是整数,表示有理数 p/q。需要数学知识。 2,gcb函数是用来显示并且约分用的 3,r1,r2 实际调用了__str__方法 4,系统级别的魔术方法,可以解析+-*/ 加法运算:__add__ 减法运算:__sub__ 乘法运算:__mul__ 除法运算:__div__查看全部
-
如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 这个类只要就是用来存储数据的 斐波那契数列: a=0,b=1,将a插入数组,然后a=b,b=a+b 开始循环查看全部
举报
0/150
提交
取消