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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • import types def fn_get_grade(self): if self.score >= 80: return 'A' if self.score >= 60: return 'B' return 'C' class Person(object): def __init__(self, name, score): self.name = name self.score = score p1 = Person('Bob', 90) p1.get_grade = types.MethodType(fn_get_grade, p1, Person) print p1.get_grade() # => A
    查看全部
  • 方法指的是class中的函数?
    查看全部
  • 题目:请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 def calc_prod(lst): def lazy_prod(): def f(x,y): return x*y return reduce(f,lst,1) ####reduce()对list的每个元素反复调用函数f,并返回最终结果值。初 return lazy_prod 始值为1。 f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • ...
    查看全部
  • 记得测试一下。
    查看全部
  • 可见,只有以双下划线开头的"__job"不能直接被外部访问。 但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。 以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子: class Person(object): def __init__(self, name): self.name = name self._title = 'Mr' self.__job = 'Student' p = Person('Bob') print p.name # => Bob print p._title # => Mr print p.__job # => Error Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Person' object has no attribute '__job'
    查看全部
  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 参考代码: class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
    查看全部
  • 题目:请利用sorted()高阶函数,实现忽略大小写排序的算法。 def cmp_ignore_case(s1, s2): u1=s1.upper() u2=s2.upper() if u1<u2: return -1 if u1>u2: ###无论比较的是s1,s2,还是它的变形即u1,u2.总体函数有两个参数:s1,s2.认准了: return 1 返回-1时输出s1在s2前面,返回1时输出s1在s2后面。 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
    查看全部
  • Python内置的 sorted()函数可对list进行排序. 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    查看全部
  • 要在Python 2.7中引入3.x的除法规则,导入__future__的division: >>> from __future__ import division >>> print 10 / 3 3.3333333333333335
    查看全部
  • functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2: >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • 1.filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 2.删除 None 或者空字符串:return s and len(s.strip()) > 0 3.当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ') 4. s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。 题目:请利用filter()过滤出1~100中平方根是整数的数 参考代码:###另一种思路 import math def is_sqr(x): r = int(math.sqrt(x)) return r*r==x print filter(is_sqr, range(1, 101)) 代码: import math def is_sqr(x): return math.sqrt(x)%1==0 print filter(is_sqr, range(1, 101))
    查看全部

举报

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

微信扫码,参与3人拼团

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

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