-
reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: reduce(f, [1, 3, 5, 7, 9], 100) 结果将变为125,因为第一轮计算是: 计算初始值和第一个元素:f(100, 1),结果为101。 初始值和第一个元素查看全部
-
不明白 马克下查看全部
-
format_name(s)函数接收一个字符串,并且要返回格式化后的字符串,利用map()函数,就可以输出新的list。 参考代码: def format_name(s): return s[0].upper() + s[1:].lower() print map(format_name, ['adam', 'LISA', 'barT'])查看全部
-
闭包:内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。查看全部
-
将self.p转型为float类型,再做除法就可以得到float: float(self.p)/self.q class Rational(object): def __init__(self,p,q): self.p = p self.q = q def __init__(self): return self.p //self.q def __float__(self): return float(self.p) / self.q查看全部
-
高阶函数:能接收函数做参数的函数查看全部
-
四则运算不局限于int和float可以做整数和浮点的四则运算以及乘方运算,但是,四则运算不局限于int,float还可以是有理数,矩阵等,要表示有理数,可以用rational类来表示 class Rational(object): def __init__(self,p,q): self.p = p self.q = q p,q都是整数,表示有理数p/q 如果要让Rational进行+运算,需要正确实现__add__ class Rational(object): def __init__(self,p,q): self.p = p self.q = q def __add__(self,r): return Rational(self.p * r.q + self.q * r.p,self.q * r.q) def __str__(self): return '%s/%s' % (self.p,self.q) __repr__ = __str__查看全部
-
函数式编程的特点: 1、把计算视为函数而非指令; 2、纯函数式编程:不需要变量,没有副作用,测试简单 3、支持高阶函数,代码简洁。查看全部
-
返回函数的时候,也可以返回匿名函数: >>> myabs = lambda x: -x if x < 0 else x >>> myabs(-1) 1 >>> myabs(1) 1查看全部
-
__len__ 如果一个类表现的像一个List,要获取多少个元素,就得用len()函数 要让len()函数正常工作,类必须提供一个特殊方法__len__() 例如,我们写一个students类,把名字传进去 class Students(object): def __init__(self, *args): self.names = args def __len__(self): return len(self.names) 只要正确实现了__len__()方法,就可以用len()函数返回students实例的长度 ss = Students('Bob','Alice','Tim')查看全部
-
python中,函数(方法)并不是依附与类才能存在。函数并不只是在类中定义。这种直接在模块中而不是类中定义的函数(方法),叫做函数。 而 方法(method),是依附于类 的,他们定义在类中,是属于类的,但是他们本质上,还是一个函数。方法的第一个参数不一定必须是self。 这么说吧,凡是def foo()这种,都是函数,在类中定义的函数,就是方法。查看全部
-
lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f() 就是这个意思,但没有说全 p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,整句来说就是实例方法查看全部
-
在python中函数和对象的区别并不显著查看全部
-
对int,str 等内置数据类型排序时,Python的sorted()按照默认的比较函数cmp排序,但是,如果一组Student类的实例排序时,就必须提供我们自己的特殊方法__cmp__() class Student(object): def __init__(self,name,score): self.name = name self.score = score def __str__(self): return '(%s,%s)' % (self.name,self.score) __repr__ = __str__ def __cmp__(self,s): if self.name < s.name: return -1 elif self.name > s.name: return 1 else: return 0查看全部
-
类属性调用:Person.count 实例属性调用:self.count查看全部
举报
0/150
提交
取消