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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 改进一下前面定义的斐波那契数列: class Fib(object): ??? 请加一个__call__方法,让调用更简单: >>> f = Fib() >>> print f(10) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] ?不会了怎么办 要正确定义参数:__call__(self, num) 参考代码: class Fib(object): def __call__(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b return L f = Fib() print f(10)
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-03-22

  • 如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。 顾名思义,__slots__是指一个类允许的属性列表: class Student(object): __slots__ = ('name', 'gender', 'score') def __init__(self, name, gender, score): self.name = name self.gender = gender self.score = score 现在,对实例进行操作: >>> s = Student('Bob', 'male', 59) >>> s.name = 'Tim' # OK >>> s.score = 99 # OK >>> s.grade = 'A' Traceback (most recent call last): ... AttributeError: 'Student' object has no attribute 'grade' __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2018-03-22

  • 假设Person类通过__slots__定义了name和gender,请在派生类Student中通过__slots__继续添加score的定义,使Student类可以实现name、gender和score 3个属性。 ?不会了怎么办 Student类的__slots__只需要包含Person类不包含的score属性即可。 参考代码: class Person(object): __slots__ = ('name', 'gender') def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): __slots__ = ('score',) def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score s = Student('Bob', 'male', 59) s.name = 'Tim' s.score = 99 print s.score
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-01-11

  • 为什么这样也给过呢,前面学的全忘记了
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-01-11

  • @property #装饰器修饰get方法,'装饰'成属性调用
    查看全部
    0 采集 收起 来源:python中 @property

    2017-01-11

  • 这里注意到一个细节,就是把score定义成了私有属性__score,而我们根据前面的知识了解到私有属性在类外是不能够直接访问的,必须通过方法调用的方式,而装饰器函数又恰好把方法装饰成了属性调用,所以这里调用属性其实就是调用方法,返回的是私有属性
    查看全部
    0 采集 收起 来源:python中 @property

    2017-01-11

  • 偷同学的笔记: @property---这是关键字,固定格式,能让方法当“属性”用。 @score.setter---前面的"score"是@property紧跟的下面定义的那个方法的名字,"setter"是关键字,这种“@+方法名字+点+setter”是个固定格式与@property搭配使用。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 什么是类的属性,这点要搞明白,记得查询哟
    查看全部
    0 采集 收起 来源:python中 @property

    2017-01-11

  • 竟然把lst误打成1st,怪不得一直让我检查结果是否为24
    查看全部
    0 采集 收起 来源:python中闭包

    2017-01-11

  • 装饰器的作用: 简化代码
    查看全部
  • @语法的作用:简化装饰器 原有的f1就被隐藏起来了。
    查看全部
  • 装饰器:通过高阶函数来包装
    查看全部
  • 什么是装饰器:
    查看全部
  • 变量可以指向函数,f = abs f(10)
    查看全部
  • 不是纯函数式编程,允许有变量 支持高阶函数 支持闭包 有限度的支持匿名函数
    查看全部

举报

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

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