import time
def performance(f):
def fn(x):
print 'call factorial() in'
return f(x)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
def performance(f):
def fn(x):
print 'call factorial() in'
return f(x)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
2016-06-22
已采纳回答 / qq_城南以南_03468985
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。key参数的值应该是一个函数,这个函数接收一个参数并且返回一个用于比较的关键字。所以只用传入函数的函数名就可以了 所以用str.lower str.lower()是调用了函数就像装饰器传入函数时 decorator(f) 而不是decorator(f())
2016-06-22
print filter(lambda s: s and len(s.strip())>0, ['test', none, '', 'str', ' ', 'end'])
2016-06-21
print sorted(['bob', 'about', 'Zoo', 'Credit'],key=str.lower)
2016-06-21
答案判定好死板啊!要写成
return "(Student:" + self.name + ", " + self.gender + ", " + str(self.score) + ")"
这种模式才给过
return "(Student:" + self.name + ", " + self.gender + ", " + str(self.score) + ")"
这种模式才给过
2016-06-21
def prod(x, y):
return x*y
print reduce(prod, [2, 4, 5, 7, 12])
return x*y
print reduce(prod, [2, 4, 5, 7, 12])
2016-06-21
已采纳回答 / 梦到慈世平
我的理解是,之前没有使用m==i时,def f(i)中传入的i是对象i的引用,而i每次递增会导致i改变,最后f1,f2,f3 = count()使得3者返回都为计算i*i的函数对象,且i相同,则执行f1() f2() f3()结果也相同m==i使得每次传入参数时,新建个局部变量m,作用域在f函数内,这样3次的m都是各自函数对象的局部变量,指向不同的int型对象,实现了保存当时的i值,则结果也被改变了函数f的确时带一个参数,调用f1 f2 f3 = count()时,count内部写死了给f传入i参数
2016-06-20
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-06-20
class Person(object):
__count = 0
def __init__(self, name):
self.name=name
Person.__count=Person.__count+1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print ('attributeError')
__count = 0
def __init__(self, name):
self.name=name
Person.__count=Person.__count+1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print ('attributeError')
2016-06-19