def count():
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r=f(i)
print r()
fs.append(r)
print fs
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
原来fs里装的是函数名,不是值!
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r=f(i)
print r()
fs.append(r)
print fs
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
原来fs里装的是函数名,不是值!
2015-05-03
最新回答 / 痕六
原文说了:"A虽被继承了两次,但__init__()只调用了一次”语句super(D,self).__init__(a)相当于调用了所有D的父类的__init__(self,a)方法,A也是D的一个父类,并且实例方法被调用了一次,所以只有一个init A...
2015-05-03
居然还有人说高阶函数相当于数学里的泛函,求别无知了行吗,你来学学泛函指不定挂科多少回,泛函是完全另一种理论。别误导大众了
2015-05-03
最赞回答 / shenx
fs = []for i in range(1, 4): def f(j): def g(): return j*j return gr = f(i)print (type(r))fs.append(r)print (fs)>>> 1 4 9<class 'function'>[<function f.<locals>.g at 0x018BD1E0>]f(i)相当于 g 而不是g() f...
2015-05-01
def calc_prod(lst):
def cal():
def f(x,y):
return x*y
return reduce(f,lst)
return cal
f = calc_prod([1, 2, 3, 4])
print f()
def cal():
def f(x,y):
return x*y
return reduce(f,lst)
return cal
f = calc_prod([1, 2, 3, 4])
print f()
2015-04-29
import math
def is_sqr(x):
return x%math.sqrt(x) == 0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return x%math.sqrt(x) == 0
print filter(is_sqr, range(1, 101))
2015-04-29
最赞回答 / 一个什么样的人
sorted方法是有三个参数,cmp就是其中的一个。cmp本身是一个比较函数。这儿之所以这么写是想重写比较的方式,所以写了一个lambda表达式重新定义cmp。
2015-04-29
弱弱的问一句,def __add__(self, r):
return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
里的r是干嘛的= =
return Rational(self.p * r.q + self.q * r.p, self.q * r.q)
里的r是干嘛的= =
2015-04-29
它给的答案里def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num):
应该是def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num+1):
如果没有+1会少一个
a, b, L = 0, 1, []
for n in range(num):
应该是def __init__(self, num):
a, b, L = 0, 1, []
for n in range(num+1):
如果没有+1会少一个
2015-04-29