已采纳回答 / 快乐的时光
lambda s: s.strip() if len(s.strip()) > 0s.strip() if len(s.strip()) > 0是返回的值 前面有个return 你把它加上看看读一下就出问题了后面s and len(s.strip()) > 0 是个判断条件 你加个return 就读的通了。就是过滤掉 None 和 '' 所以是and 连接None 直接判断 s是否为空,''用len(s.trip())判断是否为0
2018-04-13
已采纳回答 / qq_画雨_2
它是静态方法:跟class没有一点关系:因为它:1:不用class里的属性,2:不用class里的方法,3:实例化后的对象也没法调用它 所以他是静态方法,静态方法与实例方法一点关系都没有
2018-04-12
已采纳回答 / 快乐的时光
print [names.capitalize() for x in names] 不是names.capitalize()应该是x.capitalize()该语句读的顺序应该是从右到左x是names的元素 可以是'aDam'或者是‘barT'所以首字母大写应该作用在x上面 而并非是names上面希望可以帮助到你 谢谢<...code...>
2018-04-12
已采纳回答 / 慕容0692112
一行代码的前提下,python2 可以用print(map(lambda x:x[1] ,你列表的变量名))如果你变量名没有占用函数名"list",python3可以用print(list(map(lambda x:x[1] ,你列表的变量名)))
2018-04-08
已采纳回答 / 慕慕8321286
self.key的时候,key就不是指的for循环里面的key了, 而是self的一个属性,不信你可以试试将最后的输出xiaoming.job换成xiaoming.key 就会发现输出的值为Student
2018-04-06
已采纳回答 / qq_龙_18
这个不能那样计算的,你可以单独试试看 print(isinstance(math.sqrt(4),int)),这个的结果也是错的,因为math.sqrt()出来的是flout 所以不是int
2018-04-03
已采纳回答 / 知多少2017
calc_prod([1, 2, 3, 4] 的返回值类似函数的引用,不是函数值,需要后面加上()才能得到最后结果,其实你可以print calc_prod([1, 2, 3, 4])()试试。另外里层函数外面是调用不到的,不存在混淆。
2018-04-01
已采纳回答 / 重舟
Python3不再支持iteritems,要使用kw.items()&s P&rso&(ob class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.items(): setattr(self, k, v) &min& = &ers xi...
2018-03-23
已采纳回答 / 慕前端3429475
如果被装饰器封装之后,f变量指向的函数已经不是函数f了(2-11有讲),而是装饰器函数,所以直接用f.__name__打出来也不是f了,这一节有例子的。如果想打印出f,就需要对f变量的属性重新赋值,这也就是functools的作用@new_fndef f1(x): return x*2相当于def f1(x): return x*2f1 = new_fn(f1)我记得有一句,f1的原始定义函数被完全隐藏了所以想要保留之前的属性的话就要在被替代前重新赋值给新的函数
2018-03-21