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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • @score.setter 里的score其实可以写成任意,例如aaa,那么两个被装饰的方法名字也要写成aaa,外面调用设置的时候应该写成self.aaa = 56.有点类似于s.set_score(56),但这里采取等号赋值的形式。

    class Student(object):    def __init__(self, name, score):        self.name = name        self.__score = score    @property    def score_1(self):        return self.__score    @score_1.setter    def score_1(self, score):        if score < 0 or score > 100:            raise ValueError('invalid score')        self.__score = score    @property    def grade(self):        if self.__score >= 80:            grade =  'A'        elif self.__score < 60:            grade = 'C'        else:            grade =  'B'        return grades = Student('Bob', 59)print (s.grade)s.score_1 = 89print(s.grade)


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

    2018-09-07

  • sorted(iterable, cmp=None, key=None, reverse=False)里面有四个参数想必你是知道的。

    里面的cmp原始值是None,但是你要排序的['bob', 'about', 'Zoo', 'Credit']里面有大小写,按照原来的cmp,他就会将大小写一起来排序,输出会是['Credit', 'Zoo', 'about', 'bob'],所以你要告诉他怎么个操作来排序,所以建立了一个函数lambda s1, s2: cmp(s1.upper(), s2.upper()),为什么是upper呢,这是要将list里边的元素统一变成大写或小写,再来排序输出的答案,才能符合题目中‘实现忽略大小写排序’。


    查看全部
    0 采集 收起 来源:python中偏函数

    2018-09-07

  • 善于利用浮点数相乘,可以使整数变成浮点数

    查看全部
  • 学会利用逆向思维,rangel列表反过来写不用多一个参数!!!

    https://img1.sycdn.imooc.com//5b92926f0001771503650178.jpg

    查看全部
  • 应该先判断是否是一个类型,然后A <B若返回-1的话,代表按升序排列,返回1则按降序https://img1.sycdn.imooc.com//5b92891b0001c34005300198.jpg

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

    2018-09-07

  • isinstance()判断一个函数是不是已知类型

    __future__模块中有版本更新的新特新

    查看全部
  • 函数式编程的特点

    1、把计算视为函数而非指令

    2、纯函数式编程:不需要用变量,没有副作用,测试简单

    3、支持高阶函数,代码简洁

    Python支持的函数式编程:

    1、不是纯函数式编程:允许有变量

    2、支持高阶函数:函数也可以作为变量传入

    3、支持闭包:有了闭包,就能返回函数

    4、有限度的支持匿名函数


    查看全部
  • 方法调用将作用在 x 的实际类型上。sStudent类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。

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

    2018-09-06

  • 初始化D的实例,A的__init__只被调用了一次。

    注意类调用的顺序!!!需与类深度优先和广度优先有关


    查看全部
  • 例子里面没有用闭包的时候count()=[f(),f(),f()],f()的值就是9,
    用了闭包以后count()=[f(1),f(2),f(3)],
    答案里面用r来接收f(i)反而不直观,写成fs.append(f(i))就非常清楚了

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

    2018-09-06

  • 函数式编程.以函数作为参数

    查看全部
  • 返回函数,用循环要慎重

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

    2018-09-06

  • 好好学习 天天向上

    查看全部
    0 采集 收起 来源:课程介绍

    2018-09-06

  • def count():

        fs = []

        for i in range(1, 4):

            def f(k=i):

                return k*k

            fs.append(f)

        return fs


    f1, f2, f3 = count()

    print f1(), f2(), f3()


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

    2018-09-06

    1. 返回函数可以把一些计算延迟执行。

    2. 由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数(`返回的函数`)。

    查看全部

举报

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

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