已采纳回答 / 小肥鱼2020
在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。add是函数名,def是函数的定义语句add(25, 9, math.sqrt)是对上面函数的调用
2018-10-06
已采纳回答 / qq_研_motJOQ
return lambda : i*i 返回的是一个函数,并把函数存进列表,分别传递给f1, f2,f3,之后的f1(),f2(), f3()表示调用返回的lambda函数,而去掉lambda后返回的是一个值(即 i*i的值),此时f1 ,f2, f3为数值,数值无法被当做函数调用(即不存在 1() 这种写法)
2018-10-04
已采纳回答 / 布鲁斯先生
注意一下你的Python的版本,filter在Python2.7和Python3.x中有所区别:Pyhton2.7 返回列表,Python3.x 返回迭代器对象,有惰性运算的特性,节省了内存。
2018-10-01
最赞回答 / Awful_Leo
楼主可以把这种写法当成python的语法规范,比如为什么定义一个函数要用def,一样的道理。property是“属性”的意思,@property就是把实例方法当做属性调用的语法。set是“设置”的意思,setter就是“设置器”。@score.setter就是给这个类下的score属性重新设定值的时候,调用这个方法。按实际的用法,如果一个语句是s.score,就是要获取属性,所以python会直接找@property这个装饰器下面有没有score这个方法,有就直接调用了。如果另一个语句是s.score =...
2018-09-29
最新回答 / KingToAce
返回的是tuple,tuple把字符串转为十六进制存储,所以表示出来的是十六进制,如果非得要这样表示的话,那就把tuple取出子元素使用str( )方法把十六进制转为字符串
2018-09-28
最赞回答 / digbigwu
<...code...>这是我在学习类的封装的时候写的代码,你看一下,这里不是说不能按照你这样设计成self.score = score,而是因为将score变成了Person类的一个私有属性,__score这是私有属性的表达语法,比如这样写了之后就不能直接print p1.__score来得到分数了,只能通过在类的内部重新定义一个函数来返回分数的值,这也就是类的封装,就是这个道理。
2018-09-27
最新回答 / qq_还能爱你多久_0
self.numbers是类实例的一个属性,如果不定义这个属性,在__str__和__len__这些函数中L是没有办法调用的.只要能实现调用,属性名是什么样的都行,只要你能看懂,可以随便起.self.numbers=L也叫定义属性,说明self.numbers指向了L,就想之前写的代码self.name=name,这个代表self.name指向了类实例时传进来的name参数.这其实都是一样的
2018-09-27
最新回答 / 慕虎5384743
self是谁主要看是调用的谁的cmp方法,Bob和Tim比较,调用的是Bob的cmp方法。调用谁的cmp还要看sorted使用的排序算法是什么,
2018-09-27