-
这种行为称为多态。也就是说,方法调用将作用在 x 的实际类型上。s 是Student类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。 由于Python是动态语言,所以,传递给函数 who_am_i(x)的参数 x 不一定是 Person 或 Person 的子类型。任何数据类型的实例都可以,只要它有一个whoAmI()的方法即可: class Book(object): def whoAmI(self): return 'I am a book' 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。查看全部
-
方法相当于类函数,第一个参数必须要是self查看全部
-
内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。查看全部
-
1、 sorted()函数可对list进行排序, ,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 2、cmp(1,2) --> -1 int('123') --> 123 str(123) --> '123'查看全部
-
1、 int(x)查看全部
-
1、reduce(f,L)或者reduce(f,L,initial)可以传入函数运算的初始值 f(x,y) reduce()函数中传入的f函数要求接收两个参数,返回另一个list [f(x1,x2),f(f(x1,x2),x3),,,]查看全部
-
1、 map(f,L) 可以对list中每个元素进行求f(x),并返回另一个list[f(x1),f(x2),,] 2、 s[0].upper() 3、 math.sqrt(x)查看全部
-
1、 def add(x,y,f) #接收函数作为参数的函数为高级函数 return f(x)+f(y)查看全部
-
需要再次温习查看全部
-
import time def performance(f): def print_time(*args, **kw): print 'call '+f.__name__+'() in '+time.strftime('%Y-%m-%d',time.localtime(time.time())) return f(*args,**kw) return print_time @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
任务 请编写一个@performance,它可以打印出函数调用的时间。 ?不会了怎么办 计算函数调用的时间可以记录调用前后的当前时间戳,然后计算两个时间戳的差。 参考代码: import time def performance(f): def fn(*args, **kw): t1 = time.time() r = f(*args, **kw) t2 = time.time() print 'call %s() in %fs' % (f.__name__, (t2 - t1)) return r return fn @performance def factorial(n): return reduce(lambda x,y: x*y, range(1, n+1)) print factorial(10)查看全部
-
p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。查看全部
-
setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()这个好像是历遍字典kw的所有key和value,分别匹配的是k,v 当函数的参数不确定时,可以使用*args和**kwargs。*args没有key值,**kwargs有key值查看全部
-
解释器内部会将**kw拆分成对应的dict. setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v kw.iteritems()历遍字典kw的所有key和value,分别匹配k,v查看全部
-
比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。查看全部
举报
0/150
提交
取消