如何解决,这里给出一种方法,改变所有的非Student类的元素,进行Student变换,但是前提是先要讲Student的变量默认值修改为None,然后变量添加一个*kw可以多传入属性,就可以进行比较了, 核心就是将不是Student类的变成Student类
2017-10-17
from __future__ import division
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __float__(self):
return self.p / self.q
print float(Rational(7, 2))
print float(Rational(1, 3))
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __float__(self):
return self.p / self.q
print float(Rational(7, 2))
print float(Rational(1, 3))
2017-10-17
def count():
def f():
return map(lambda x:x*x,range(1,4))
return f
f = count()
print f(),'\n' # lambda 确实使程序变简单了,但返回是一个list ,结果为[1,4,9]
def f():
return map(lambda x:x*x,range(1,4))
return f
f = count()
print f(),'\n' # lambda 确实使程序变简单了,但返回是一个list ,结果为[1,4,9]
2017-10-17
def is_sqr(x):
if math.sqrt(x) % 1.0 == 0.0:
return x
print filter(is_sqr, range(1, 101))
if math.sqrt(x) % 1.0 == 0.0:
return x
print filter(is_sqr, range(1, 101))
2017-10-17
def add(x, y, f):
return f(x) + f(y)
print add(25, 9, math.sqrt)
return f(x) + f(y)
print add(25, 9, math.sqrt)
2017-10-17
class Fib(object):
def __init__(self, L):
self.L=[0,1]
for i in range(2,10):
self.L.append(self.L[i-1]+self.L[i-2])
def __str__(self):
return str(self.L)
def __len__(self):
return len(self.L)
f = Fib(10)
print f
print len(f)
def __init__(self, L):
self.L=[0,1]
for i in range(2,10):
self.L.append(self.L[i-1]+self.L[i-2])
def __str__(self):
return str(self.L)
def __len__(self):
return len(self.L)
f = Fib(10)
print f
print len(f)
2017-10-17
print filter(lambda s : s and len(s.strip())>0, ['test', None, '', 'str', ' ', 'END'])
2017-10-17
def calc_prod(L):
def lazy_prod():
return reduce(lambda x,y:x*y,L)
return lazy_prod
f = calc_prod([1,2,3,4,5,6])
print f()
def lazy_prod():
return reduce(lambda x,y:x*y,L)
return lazy_prod
f = calc_prod([1,2,3,4,5,6])
print f()
2017-10-17
print filter(lambda s: s and len(s.strip())>0, ['test', None, '', 'str', ' ', 'end'])
2017-10-17
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
2017-10-16