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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法
    查看全部
  • python中定义类方法 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init__(self, name): self.name = name Person.count = Person.count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many() 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • lambda: 'A'等价于return'A',相当于一个函数f,那么f()='A'.因此,p1.get_grade=f,p1.get_grade()=f() 就是这个意思,但没有说全 p1.get_grade是属性,只不过这里的属性是一个函数对象,即f p1.get_grade()是方法,前面的p1就是调用这个方法的对象,即实例,整句来说就是实例方法 不常用 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 p2 = Person('Alice', 65) print p2.get_grade() # ERROR: AttributeError: 'Person' object has no attribute 'get_grade' # 因为p2实例并没有绑定get_grade
    查看全部
  • 把代码复制到spyder里看运行记录,有点明白了……就是说在定义这个类的时候,一个def定义一块东西,第一块初始化了实例属性,第二块定义了实例方法,且其中的self在具体实例中可以隐式省略,而p()就是一个调用。 要好好理解啊
    查看全部
    0 采集 收起 来源:python中 __call__

    2017-12-25

  • capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写
    查看全部
  • 注意map中的f是依次作用在list上的,所以s是list中的一个元素,因此不需要再f中写for循环。
    查看全部
  • @property内置装饰器,即把类中的实例方法转换成类属性! 这就是不用把grade定义给类的原因??
    查看全部
    0 采集 收起 来源:python中 @property

    2017-12-25

  • 对照加了装饰器和不加装饰器的代码,可以理解很多,其实就是少了get和set,然后其他形式变了变而已。 但是我的疑惑是,不是说给类添加属性吗?怎么直接就上了?照着原代码看也感觉你得定义啊……
    查看全部
    0 采集 收起 来源:python中 @property

    2017-12-25

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

    2018-03-22

  • raise ValueError('invalid score')手工引发一个异常,raise后接异常名和初始化参数
    查看全部
    0 采集 收起 来源:python中 @property

    2017-12-25

  • 将i的值赋给m保存下来并进行计算,就能返回f(1*1)、f(2*2)、f(3*3),否则只能返回3个f(i*i)
    查看全部
    0 采集 收起 来源:python中闭包

    2017-12-25

  • python中定义实例方法: 。。。实例的方法就是在类中定义的函数,它的第一个参数永远是 self。。。 在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。
    查看全部
  • 双斜杠表示取整除
    查看全部
  • 这个求最大公约数的循环算法是真的流劈,评论诚不欺我
    查看全部
  • python中类属性和实例属性名字冲突怎么办 当实例属性和类属性重名时,实例属性优先级高
    查看全部

举报

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

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