为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 这种行为称为多态。也就是说,方法调用将作用在 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)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
    查看全部
    0 采集 收起 来源:python中多态

    2016-08-06

  • 方法相当于类函数,第一个参数必须要是self
    查看全部
  • 2uo
    内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-08-05

  • 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)
    查看全部
  • 需要再次温习
    查看全部
    0 采集 收起 来源:python中 @property

    2016-08-05

  • 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
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!