这简直就是spring和aop(java代理模式啊),好亲切啊。面向对象和函数式编程终究还是同一目的的不同手段罢了。
2016-08-16
不能同时写__init__和__call__的原因是__init__方法没有接到参数
要这样写:
class Fib(object):
def __init__(self):
pass
def __call__(self,num):
L=[0,1]
for i in range(num-2) :
L.append(L[-1]+L[-2])
return L
f = Fib()
print f(10)
要这样写:
class Fib(object):
def __init__(self):
pass
def __call__(self,num):
L=[0,1]
for i in range(num-2) :
L.append(L[-1]+L[-2])
return L
f = Fib()
print f(10)
2016-08-16
有问题的不是老师,而是编译器,这个在线的似乎不能显示异常,用自己的Python做好了粘贴进来就好了。老师不欠你们的,别骂骂咧咧的好不
2016-08-15
题目错误:如果将类属性 count 改为私有属性__count,则外部无法读取__score,但可以通过一个类方法获取,请编写类方法获得__count值。
正确题目:如果将类属性 count 改为私有属性__count,则外部无法读取__count,但可以通过一个类方法获取,请编写类方法获得__count值。
正确题目:如果将类属性 count 改为私有属性__count,则外部无法读取__count,但可以通过一个类方法获取,请编写类方法获得__count值。
2016-08-15
print filter(lambda s:s and len(s.strip())>0, ['test', None, '', 'str', ' ', 'END'])
2016-08-15
import math
def is_sqr(x):
if (math.sqrt(x) % 2 == 0 ):
return x
if (math.sqrt(x) % 2 == 1 ):
return x
print filter(is_sqr, range(1, 101))
def is_sqr(x):
if (math.sqrt(x) % 2 == 0 ):
return x
if (math.sqrt(x) % 2 == 1 ):
return x
print filter(is_sqr, range(1, 101))
2016-08-15
def count():
fs = []
for i in range(1, 4):
def f(i):
return i*i
fs.append(f(i))
return fs
f1, f2, f3 = count()
print f1,f2,f3
fs = []
for i in range(1, 4):
def f(i):
return i*i
fs.append(f(i))
return fs
f1, f2, f3 = count()
print f1,f2,f3
2016-08-15
def format_name(s):
return s.capitalize()
print map(format_name, ['adam', 'LISA', 'barT'])
return s.capitalize()
print map(format_name, ['adam', 'LISA', 'barT'])
2016-08-15
from math import sqrt
def add(x, y, f):
f=sqrt
return f(x) + f(y)
print add(25, 9, sqrt)
def add(x, y, f):
f=sqrt
return f(x) + f(y)
print add(25, 9, sqrt)
2016-08-14
def h(x,y):
return x*y
def calc_prod(lst):
def multify():
return reduce(h,lst)
return multify
f = calc_prod([1, 2, 3, 4])
print f()
return x*y
def calc_prod(lst):
def multify():
return reduce(h,lst)
return multify
f = calc_prod([1, 2, 3, 4])
print f()
2016-08-14