已采纳回答 / 慕数据0495159
<...code...>执行结果:<...code...>如果你细心,你会发现,最后一个self.name打印的结果是None,其实,__call__方法就是重写了“()”运算符,让返回的内容,具有了函数执行的能力,这个和原先的类没有关系。
2016-07-01
'@'后面加的是decorator的名字
要改什么函数,就在那个函数的代码上加一行: @decorator
要改什么函数,就在那个函数的代码上加一行: @decorator
2016-07-01
def calc_prod(lst):
def lazy_sum():
return reduce((lambda x,y: x*y),lst)
return lazy_sum
f = calc_prod([1, 2, 3, 4])
print f()
ambda是一个匿名函数,x,y是他的参数,x*y是他的返回值,按着你下面那么写的话,函数只使用以此所以用匿名函数可以节省内存中定义变量的空间,而且能是程序更简洁
reduce是横向逐个元素进行运算
def lazy_sum():
return reduce((lambda x,y: x*y),lst)
return lazy_sum
f = calc_prod([1, 2, 3, 4])
print f()
ambda是一个匿名函数,x,y是他的参数,x*y是他的返回值,按着你下面那么写的话,函数只使用以此所以用匿名函数可以节省内存中定义变量的空间,而且能是程序更简洁
reduce是横向逐个元素进行运算
2016-07-01
【错误的说法】一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
在python中继承中的一些特点:
2.在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
所以:Person.__init__(self,name, gender)的写法是合理的
在python中继承中的一些特点:
2.在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
所以:Person.__init__(self,name, gender)的写法是合理的
2016-07-01
import math
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
2016-07-01
if self.score<s.score:
return 1
if self.score>s.score:
return -1
if self.score==s.score:
return cmp(self.name,s.name)
return 1
if self.score>s.score:
return -1
if self.score==s.score:
return cmp(self.name,s.name)
2016-06-30