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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 多重继承的目的是从两种继承树中分别选择并继承出子类,以便结合功能使用。举个例子,Python的网络服务器有TCP等等,如果没有多重继承,要实现上述组合需要4*2=8个子类
    查看全部
  • 多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承 多重继承的继承链就不是一棵树了,它像这样: class A(object): def __init__(self,a): print 'init A....' self.a = a class B(A): def __init__(self,a): super(B,self).__init__(a) print 'init B ...' class C(A): def __init__(self,a): super(C,self).__init__(a) print 'init C ...' class D(B,C): def __init__(self,a): super(D,self).__init__(a) print 'init D...'
    查看全部
  • 在一个函数中,如果我们接收一个变量X,则无论X是Person,Student,还是Teacher,都可以正确打印出结果 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(t) who_am_i(s)
    查看全部
    0 采集 收起 来源:python中多态

    2016-07-25

  • 返回函数内部和外部都可以定义函数。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-07-25

  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出结果: [1, 4, 9, 10, 25, 36, 49, 64, 81]
    查看全部
  • 1.类具有继承关系,并且子类类型可以向上转型看做父类类型,如果从Person派生出student和Teacher,并都写了一个whoAml()方法: class Person(object): def __init__(self,name,gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a person, my name is %s' %self.name class Student(Person) def __init__(self,name,gender.socre): super(Stident,self).__init__(name,gender) self.score = score def whoAmI(self): return 'I am a Teacher,my name is %s' % self.name
    查看全部
    0 采集 收起 来源:python中多态

    2016-07-25

  • s是student类型,不是Teacher,这很容易理解,但是S也是Person类型 ,因为Student继承了Person,虽然它比Person多了一些属性和方法,但是把s看成是Person类的实例也是可以的,这说明在一条继承链上,一个实例可以看成它本身的类型,也可以看成是它父类的类型
    查看全部
  • 函数调用不需要传入self, 但是方法调用需要传入self
    查看全部
  • 函数isinstance()可以判断一个变量的类型,既可以在Python内置的数据类型如Str,list,dict也可以用在我们自定义的类,它们本质上都是数据类型。 假设有如下的Person,Student,和teacher的定义及继承关系如下 class Person(object): def __init__(self,name,gender): self.name = name self.gender = gender class Student(Person): def __init__(self,name,gender,score): super(Student,self.__init__(name,gender) self.score = score class Teacher(Person): def __init__(self,name,gender,course): super(Teacher,self).__init__(name,gender) self.course = course p = Person('Tim','Male') s = Student('Bob','Male',88) t = Teacher('Alice','Female',‘English’) 当我们拿到变量p.s,t时,可以用isinstance判断类型 isinstance(p,Person) #True ,p是Person类型 isinstance(p,Student) #false ,p不是Student类型
    查看全部
  • range(x,y)函数的范围在x~y之间,包含x但是不包含y。
    查看全部
  • 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-07-25

  • 实例方法调用参数指向实例本身,例如: class Person(object): def __init__(self, name): self.__name = name def get_name(self): return self.__name 类方法的参数通过@classmethod传入类本身,从而调用类方法how_many()
    查看全部
  • def fn_get_grade(self): if self.score >= 80: return 'A' if self.score >= 60: return 'B' return 'C' 在类的外面,是一个函数,通过types.methodtype()调用变成方法
    查看全部
  • 访问 p1.address 时,优先查找实例属性,返回'China'。 访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。 可见,当实例属性和类属性重名时,实例属性优先级高
    查看全部
  • @makebold @makeitalic def say(): return "Hello" 打印出如下的输出: <b><i>Hello<i></b> 你会怎么做?最后给出的答案是: def makebold(fn): def wrapped(): return "<b>" + fn() + "</b>" return wrapped def makeitalic(fn): def wrapped(): return "<i>" + fn() + "</i>" return wrapped @makebold @makeitalic def hello(): return "hello world" print hello() ## 返回 <b><i>hello world</i></b> 说白了,装饰器不就相当于递归函数了 不断的向下寻找函数作为参数
    查看全部

举报

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

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