最赞回答 / weixin_慕丝8347161
我也是初学,我的理解是这样,不知道对不对print f()执行f函数,而f=calc_prod([1, 2, 3, 4]),意味着f函数是calc_prod([1, 2, 3, 4])调用之后返回的函数对象。即lazy_prod函数。也就是说调用的其实是lazy_prod()函数,lazy_prod函数返回的是reduce(f,lst),也就是对lst集合进行f函数的reduce操作,其次就进入f(x,y)函数,这个函数返回的是x*y,也就是对lst集合进行累乘操作,结果就是1*2*3*4=24
2019-12-08
最赞回答 / wztg
在__cmp__中先判断列表中元素是否是Student类型,不是的话转成字符串跟name比较就可以了 def __cmp__(self, s): if not isinstance(s, Student): return cmp(self.name,...
2019-12-03
最赞回答 / leng奕书
python3中map()返回iterators类型,不再是list类型。进行list转换即可.def format_name(s): return s.capitalize()print(list(map(format_name,['adam', 'LISA', 'barT'])))
2019-12-01
最新回答 / skyinglyh
map的用法:map(function, iterable...)你的写法其实是把format_name(s)中的s即'adam', or 'LISA', 'barT',一个string中的每个元素转为title 然后拼成List,再返回,所以最终string会被拆为List. 参考def format_name(s): return s.title()print map(format_name, ['adam', 'LISA', 'barT'])或def format_names(s): r...
2019-11-28
最赞回答 / 慕UI8710318
count是类属性,要改变类属性得用“Person.count”,“p1.count”改变的只是实例p1的属性,而是实例属性的优先级比类属性高,我是这么理解的。
2019-11-22
最赞回答 / 流芒阿
别那么玄 你API都开放给别人,别人就只能调用而已 。 就是你的类被继承的时候,你不希望子类重写一些属性。在架构设计的时候,java上会些一些被保护和私有属性或者方法,避免一些瓜皮把系统整崩了
2019-11-22
最新回答 / 宝慕林1502307
<...code...>你把代码分隔一下,有助于理解。<...code...>之所以会这样输出,是因为 print 在输出时,会先去求解 f() 的运算结果,而 f() 运算的副作用就是在 print 方法之前输出了<...code...>
2019-11-20
已采纳回答 / 悠哉悠哉3311454
import mathdef layers(n): n_sqrt = math.ceil(math.sqrt(n)) if (n_sqrt % 2 == 0): n_sqrt = n_sqrt + 1 layer = (n_sqrt + 1) / 2 return layerprint layers(88)
2019-11-11
最赞回答 / 贰很贰
g所引用的变量j不是循环变量,你在调用r=f(i)时,返回的就是1*1,2*2,3*3,count()函数接受的是一个列表【1,4,9】,
f1,f2,f3 = count()#返回多个值时,可以用多个变量接收,这里的f1只是对应的列表索引0
2019-11-11