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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 阶乘函数 Fracial (n): print (lambda x,y:x*y range(1,n+1))
    查看全部
  • def who_am_i(x): print x.whoAmI() p = Person('Tim', 'Male') s = Student('Bob', 'Male', 88) t = Teacher('Alice', 'Female', 'English') who_am_i(p) who_am_i(s) who_am_i(t) 不能who_am_i(Person) 从who_am_i方法中看出参数要调用whoAmI方法,whoAmI方法是在Person类中定义的,只有Person类的实例对象才能调用,故who_am_i方法应该传入的是类的实例,而不是类本身
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-10

  • 使用super()的漂亮之处在于,你不需要明确给出任何基类名字,这意味着如果你改变了类继承关系,你只需要改一行代码(class语句本身)而不必在大量代码中去查找所有被修改的那个类的名字。 ------《Python核心编程》P358
    查看全部
  • def format_name(s): return s[0].upper()+s[1:].lower() print map(format_name, ['adam', 'LISA', 'barT']) 由此说明Python中是把list作为一个集合看待,函数直接作用的对象是list中的元素而非list本身,因此我们无需在函数中用for循环逐次取出list中的元素再将函数作用上去。
    查看全部
  • okok
    查看全部
  • 这节没看懂暂时
    查看全部
  • 函数名也是变量
    查看全部
  • class Person(object): count = 0 def __init__(self, name):#每一次创建实例对象是,__init__()就会自动执行 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
    查看全部
  • 1.reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值 2.reduce()还可以接收第3个可选参数,作为计算的初始值
    查看全部
  • 最后两步?
    查看全部
  • 虽然私有属性无法从外部访问,但是,从**类的内部**是可以**访问**的。 实例的方法就是在类中定义的函数,它的第一个参数永远是 self 在实例方法(在类中定义)内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种**数据封装**的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。 class Person(object): def __init__(self, name, score): self.__name = name self.__score = score def get_grade(self): if self.__score >= 80:#不能score>80 return 'A' if self.__score >= 60: return 'B' 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() 一个**实例的**私有属性就是以__开头的属性,无法被**外部**(即“自己”这个实例对象和其他实例对象)访问 在Person类中,由构造器__init__(第一个参数是self,即实例对象本身)可知,实例对象的name和score都是私有属性,外部无法直接访问。这时就在类的内部定义了一个*get_私有属性*方法(get_grade),传入的参数是self,这个self就表示实例对象本身,故方法体中这样写到:if self.__score >= 80,从而实现外部实例对象访问类内部私有属性的目的。而实例对象在调用实例方法时,参数self不需要显式传入
    查看全部
  • ,前面的1和2输出分别是Person在创建Bob和Alice对象的时候调用了__init__方法里面的print 输出的,当创建完对象,调用最下面的那个print时,由于这个print是在外部,所以无法调用内部私有的__count,所以报错 可见类实例的属性,当对象实例化时,对象可以访问到类属性,但是这个类属性,是和当前对象绑定到一起的,对象对类属性的修改不影响类本身的类属性,只影响对象拷贝的那一份类属性。
    查看全部
  • 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都*统一*加上以下属性: class Person(object): def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth 相应地,创建实例时,就必须要提供除 self 以外的参数: xiaoming = Person('Xiao Ming', 'Male', '1991-1-1') xiaohong = Person('Xiao Hong', 'Female', '1992-2-2') ***有了__init__()方法,每个Person实例在**创建时**,**都会有 name、gender 和 birth 这3个属性**,*并且*,**被赋予不同的属性值**,访问属性使用.操作符: print xiaoming.name # 输出 'Xiao Ming' print xiaohong.birth # 输出 '1992-2-2'
    查看全部
  • 定义一个函数 f(),我们让它返回一个函数 g,可以这样写: def f(): print ‘call f()…’ def g(): print ‘call g()…’ return g 注意最后一排前面对齐位置。
    查看全部

举报

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

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