class Person(object):
def __init__(self,name,gender,**kw):
self.name = name
self.gender = gender
for k in kw:
setattr(self,k,kw[k])
kwargs={'age':25,'course':'Python'}
p = Person('LiLi','man',**kwargs)
print p.name
print p.gender
print p.age
print p.course
def __init__(self,name,gender,**kw):
self.name = name
self.gender = gender
for k in kw:
setattr(self,k,kw[k])
kwargs={'age':25,'course':'Python'}
p = Person('LiLi','man',**kwargs)
print p.name
print p.gender
print p.age
print p.course
2016-01-11
# def cmp_ignore_case(s1, s2):
# ???
print sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
# ???
print sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower)
2016-01-10
已采纳回答 / 乔帮主
你没有把这个结果返回这个函数里面定义的参数x啊,导致出了函数范围外,平方的结果无效了,最终返回的只是变量x啊,而变量x的范围是1到100,所以出现这样的结果不意外!
2016-01-10
怪不得不理解,在最新的2.7 或者3.x 版本中,sorted函数的形式早就变了,这里老师还用的2.4 以前的写法,怪不得我们不理解。大家参考2.7或者3.x的sorted 格式要求,很简洁易懂。key 是一个关键字参数,传入一个函数,作用于每一个元素后再排序
2016-01-10
def count():
fs = []
for i in range(1, 4):
def f(i):
def g():
return i*i
return g
fs.append(f(i))
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
fs = []
for i in range(1, 4):
def f(i):
def g():
return i*i
return g
fs.append(f(i))
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
2016-01-09
只要用了reduce函数,那么传入一个空的list 就会出错:'reduce() of empty sequence with no initial value'
不用reduce用for循环像这样也会出错,调用一个没有任何元素的空list 就会返回所有元素乘积为1
def calc_prod(lst):
def prod():
a = 1
for i in lst:
a *= i
return a
return prod
不用reduce用for循环像这样也会出错,调用一个没有任何元素的空list 就会返回所有元素乘积为1
def calc_prod(lst):
def prod():
a = 1
for i in lst:
a *= i
return a
return prod
2016-01-09
import math
def is_sqr(x):
return type(math.sqrt(x)) == type(1)
print filter(is_sqr,range(1,101))
def is_sqr(x):
return type(math.sqrt(x)) == type(1)
print filter(is_sqr,range(1,101))
2016-01-08
最赞回答 / xdfcc
这个你这样理解,先从理论上其实就是通过一个装饰器把一个函数变成另外一个函数!也就是例子上的通过def performance(f)把factorial(n)函数变成了fn函数,最后执行的也是fn函数,那么fn函数做了什么呢,看装饰器里定义的fn函数就知道,fn其实就是第一通过print输出了一个字符串,第二返回一个r函数,而r函数在fn里也定义了r=f(*args, **kw),也就是调用传进去的f函数其实就是调用factorial(n),你可以自己结合运行程序来理解
2016-01-08
def cmp_ignore_case(s1, s2):
c1 = s1.lower()
c2 = s2.lower()
if c1 < c2:
return -1
if c1 > c2:
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
c1 = s1.lower()
c2 = s2.lower()
if c1 < c2:
return -1
if c1 > c2:
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2016-01-08
def pf_dec(f):
@functools.wraps(f)
def fn(*args, **kw):
start = time.time()
res = f(*args, **kw)
end = time.time()
print '%s %s() in : %fs' % (unit,f.__name__,end - start)
return res
return fn
return pf_dec
@functools.wraps(f)
def fn(*args, **kw):
start = time.time()
res = f(*args, **kw)
end = time.time()
print '%s %s() in : %fs' % (unit,f.__name__,end - start)
return res
return fn
return pf_dec
2016-01-08
class Person(object):
def __init__(self, name, score):
self.name = name
self.__score = score
p = Person('Bob', 59)
print p.name
try:
print p.__score
except:
print "attributeerror"
def __init__(self, name, score):
self.name = name
self.__score = score
p = Person('Bob', 59)
print p.name
try:
print p.__score
except:
print "attributeerror"
2016-01-08