请指点下,到底哪错了
class Person(object):
def __init__(self, name, score):
self.name=name
self.__score=score
def get_grade(self):
if self.__score >= 80:
return 'A'
elif self.__score => 60:
return 'B'
else:
return 'C'
class Person(object):
def __init__(self, name, score):
self.name=name
self.__score=score
def get_grade(self):
if self.__score >= 80:
return 'A'
elif self.__score => 60:
return 'B'
else:
return 'C'
2016-08-03
def count():
fs = []
for i in range(1, 4):
def f(x=i):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(),f2(),f3()
fs = []
for i in range(1, 4):
def f(x=i):
return x*x
fs.append(f)
return fs
f1, f2, f3 = count()
print f1(),f2(),f3()
2016-08-03
liu047nice
s.append(f),只是将每一个f()的引用保存进了list,并没有进行对于i的计算,所以导致最后在运行了f(1)之后,i已经变为了3,所以会一样结果都为9.只要将这里改为fs.append(f())即可,这样就在这一步的时候已经进行了i*i的运算,将结果保存了,通过这一题可以注意到在python这门语言之中,f与f()的大区别。
改了也没用的
s.append(f),只是将每一个f()的引用保存进了list,并没有进行对于i的计算,所以导致最后在运行了f(1)之后,i已经变为了3,所以会一样结果都为9.只要将这里改为fs.append(f())即可,这样就在这一步的时候已经进行了i*i的运算,将结果保存了,通过这一题可以注意到在python这门语言之中,f与f()的大区别。
改了也没用的
2016-08-03
def calc_prod(lst):
def lazy_prod():
return reduce(mul,lst)
return lazy_prod
def mul(x,y):
return x*y
f = calc_prod([1, 2, 3, 4])
print f()
def lazy_prod():
return reduce(mul,lst)
return lazy_prod
def mul(x,y):
return x*y
f = calc_prod([1, 2, 3, 4])
print f()
2016-08-02
import math
def is_sqr(x):
return math.sqrt(x)-int(math.sqrt(x))==0
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return math.sqrt(x)-int(math.sqrt(x))==0
print filter(is_sqr, range(1, 101))
2016-08-02
一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
2016-08-02
fs.append(f)这是在list里增加一个函数 而 fs.append(f())则变成了在list里增加一个实例
2016-08-02
def count():
fs = []
for i in range(1, 4):
def f(x):
def g():
return x*x
return g
r = f(i)
fs.append(r)
return fs
fs = []
for i in range(1, 4):
def f(x):
def g():
return x*x
return g
r = f(i)
fs.append(r)
return fs
2016-08-02