为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 类的继承:待写类可直接继承已有类如Student(Person)调用Person类

    但是要记得调用super(subclass,self).__init__(args)初始化父类

    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到  类(Person)上,而非类的实例。

    查看全部
  • 函数调用不需要传入 self(无括号),但是方法调用需要传入 self(括号)。

    查看全部
  • 因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法:

    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

    在创建实例后,使用 types.MethodType() 把一个函数变为一个方法

    查看全部
  • 任务

    假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:

    输入:['adam', 'LISA', 'barT']
    输出:['Adam', 'Lisa', 'Bart']

    • ?不会了怎么办

    • format_name(s)函数接收一个字符串,并且要返回格式化后的字符串,利用map()函数,就可以输出新的list。

      参考代码:

      def format_name(s):
          return s[0].upper() + s[1:].lower()
      print map(format_name, ['adam', 'LISA', 'barT'])


    查看全部
  • 任务   要先调入包

    利用add(x,y,f)函数,计算:

    54c8a43b00013a9900930027.png

    • ?不会了怎么办

    • 计算平方根可以用函数:

      >>> math.sqrt(2)
      1.4142...

      参考代码:

      import math
      def add(x, y, f):
          return f(x) + f(y)
      print add(25, 9, math.sqrt)


    查看全部
  • 看不懂

    a,b = b, a+b

    查看全部
    0 采集 收起 来源:python中 __len__

    2018-07-26

  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。


    查看全部
  • 6-4 --------

    查看全部
    0 采集 收起 来源:python中 __len__

    2018-07-25

  • 实例的方法就是在类中定义的函数,它的第一个参数永远是self

    查看全部
  • 关键字lambda 表示匿名函数

     def f(i):     return lambda:i*i

    相当于

    def f(i):      
        def g():  
            return i*i    
        return g


    查看全部
    0 采集 收起 来源:python中闭包

    2018-07-24

  • def format_name(s):
        return s[0].upper()+s[1:].lower()print (list(map(format_name, ['adam', 'LISA', 'barT'])))

    这是python3对应的代码

    查看全部
  • 还是不明白4-10这节的内容。。为什么要定义类方法0.0有什么作用呢 回头再过来看

    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)

    查看全部
    0 采集 收起 来源:python中闭包

    2018-07-24

  • 实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。

    实例方法:在类属性定义下加1定义return self.__属性

    查看全部

举报

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

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