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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 学习起来,注意关键点。
    查看全部
  • python之类的定义: class person(object): def _init_(self,name,gender,birth): self.name=name self.gender=gender self.birth=birth _init_方法的第一个参数习惯使用self,指类本身,后面的参数是自定义参数,表示类属性。 创建类实例时,必须提供self以外的参数: xiaoming=Person('Xiao ming','Male','1991-1-1') xiaohong=Person('Xiao hong','Female','1992-10-03')
    查看全部
  • setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v job = 'Students' 应该是自动匹配成了字典(这一点我也不太明白) kw.iteritems()这个好像是历遍字典kw的所有key和value,分别匹配的是k,v **kw是定义一个字典,其赋值形式是 key=value 形成的字典就是dict{key:value}
    查看全部
  • 1.reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 2.reduce()还可以接收第3个可选参数,作为计算的初始值。
    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量。 def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 在这个函数中,return fs中,这个fs是会后续发生变化的变量,所以会出现错误。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-23

  • 高阶函数是能够接受另一个函数作为参数
    查看全部
  • 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。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • woleigequ
    查看全部
  • p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。
    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • 任务 请给 Person 类增加一个私有属性 __score,表示分数,再增加一个实例方法 get_grade(),能根据 __score 的值分别返回 A-优秀, B-及格, C-不及格三档。 class Person(object): def __init__(self, name, score): self.__name=name self.__score=score def get_grade(self): if self.__score>=90: return 'A' elif self.__score>=60: return 'B' else: return 'C' p1 = Person('Bob', 90) p2 = Person('Alice', 65) p3 = Person('Tim', 48) print p1.get_grade() print p2.get_grade() print p3.get_grade()
    查看全部
  • 访问 p1.address 时,优先查找实例属性,返回'China'。 访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • 包下面必须有个__int__.py文件,每层都必须有~
    查看全部
  • 包就是文件夹,包可以有多级 模块就是.py文件
    查看全部
  • 任务 请给 Person 类添加一个类属性 count,每创建一个实例,count 属性就加 1,这样就可以统计出一共创建了多少个 Person 的实例。 ?不会了怎么办 由于创建实例必定会调用__init__()方法,所以在这里修改类属性 count 很合适。 参考代码: class Person(object): count = 0 def __init__(self, name): Person.count = Person.count + 1 self.name = name p1 = Person('Bob') print Person.count # => 1 p2 = Person('Alice') print Person.count # => 2 p3 = Person('Tim') print Person.count # => 3
    查看全部

举报

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

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