已采纳回答 / qq_天涯_81
喔喔,我懂你的意思了(当时你的问题是直接跳转出来的,我不是刚好看这一节),现在回看了一下,知道你fn()的意思了,,,这里你这么写是可以得到一样结果的,不同的是我代码中new(f1)返回的是wrapper函数,而你返回的就是原函数f1函数,,,如果按你这么写的话,f1=new_fn(f1)中左边这个f1就可以是任意的变量了,比如,把后两行代码改为:m1=new_fn(f1) print m1(5)结果还是一样的,这样就给程序增加了很多不确定性了,个人觉得还是按装饰器函数的标准写法比较好
2018-07-15
这一节应该是我觉得比较难理解的一节了。。。。不过返回函数这种用法我到现在还没感觉很有必要。。。。可能需要之后深入学习之后才会用到
2018-07-15
最新回答 / Popcorn_0
python编程_Python异常机制try: 代码段 except 异常类型,e: 异常处理代码段,如果不知道异常类型,可以使用try: 代码段 except Except,e:异常处理代码段;Except是通用异常类型 引自:http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520128311441139/
2018-07-14
已采纳回答 / luilui1234
偏函数,参数(f,x) x是f的参数,可以是默认参数,也可以自定义.比如int2=functools.partial(int,base=2),int 默认base=10,但如果想要自定义为二进制,可以使用functools.partial()
2018-07-14
# coding= utf-8
#取公约数方法
def gcd(a,b):
print '初始化:a=%s' % a
print '初始化:b=%s' % b
print '################'
if b == 0:
print '规约到b=0:a=%s' % a
print '规约到b=0:b=%s' % b
return a
return gcd(b, a % b)
print gcd(6,8)
测试了一下参考答案中获取分子分母公约数的方法,代码如上所示。可以看到递归调用的过程。
#取公约数方法
def gcd(a,b):
print '初始化:a=%s' % a
print '初始化:b=%s' % b
print '################'
if b == 0:
print '规约到b=0:a=%s' % a
print '规约到b=0:b=%s' % b
return a
return gcd(b, a % b)
print gcd(6,8)
测试了一下参考答案中获取分子分母公约数的方法,代码如上所示。可以看到递归调用的过程。
2018-07-13
import math
def is_sqr(x):
return math.sqrt(x) == int(math.sqrt(x))
print filter(is_sqr, range(1, 101))
def is_sqr(x):
return math.sqrt(x) == int(math.sqrt(x))
print filter(is_sqr, range(1, 101))
2018-07-13
最赞回答 / liujlb
你考虑一下,如果需求改为按照年龄排序,就得把你的代码里的“L1 = [p1.name, p2.name, p3.name]”改为“L1 = [p1.age, p2.age, p3.age]”。如果用示例的写法,把“L2 = sorted(L1,lambda x,y:cmp(x.name,y.name))”改为“L2 = sorted(L1,lambda x,y:cmp(x.age,y.age))”就可以了,是不是这样写更灵活
2018-07-13
已采纳回答 / qq_宋子文_0
后面两个参数(x、z)是没有必要的,因为对每一个属性来讲,只有键和键值,k、v这两个参数就可以完成属性设置,分别代表属性的键和键值,而通过循环可以完成多个属性的设置
2018-07-13