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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • PY获取对象信息 1.isinstance()判断实例类型 2.用type()函数获取变量类型,返回一个Type对象 >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'> 3.用dir()函数获取变量的所有属性 对于实例变量,dir()返回所有实例属性,包括`__class__`这类有特殊意义的属性 注意到方法`whoAmI`也是 s 的一个属性。 如何去掉`__xxx__`这类的特殊属性,只保留我们自己定义的属性?回顾一下filter()函数的用法。 dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了: 见截图
    查看全部
  • #self.p = r1的分子 = 1 #self.q = r1的分母 = 2 # r.p = r2的分子 = 1 # r.q = r2的分母 = 4 gcd()求最大公约数函数
    查看全部
  • PY多重继承 Python允许从多个父类继承,称为多重继承 如截图 D同时继承自B和C,也就是D拥有了A/B/C的全部功能 多重继承通过super()调用__init__(0方法时,A虽然被继承了两次,但__init__()只调用了一次 多重继承的目的是从两种继承树种分别选择并继承出子类,以便组合功能使用 举个 Python的网络服务器有TCPServer、UDPServer、UnixStreamServer、UnixDatagramServer,而服务器运行模式有 多进程ForkingMixin 和 多线程ThreadingMixin两种。 要创建多进程模式的 TCPServer: class MyTCPServer(TCPServer, ForkingMixin) pass 要创建多线程模式的 UDPServer: class MyUDPServer(UDPServer, ThreadingMixin): pass 如果没有多重继承,要实现上述所有可能的组合需要 4x2=8 个子类。
    查看全部
  • print p.__job # => Error 只有以双下划线开头的"__job"不能直接被外部访问
    查看全部
  • class Person(object): *def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth
    查看全部
  • PY的open()函数和用法 Python提供了open()函数来打开一个磁盘文件,并返回 File 对象。File对象有一个read()方法可以读取文件内容: 例如,从文件读取内容并解析为JSON结果: import json f = open('/path/to/file.json', 'r') print json.load(f) 由于Python的动态特性,json.load()并不一定要从一个File对象读取内容。任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。 请尝试编写一个File-like Object,把一个字符串 r'["Tim", "Bob", "Alice"]'包装成 File-like Object 并由 json.load() 解析。
    查看全部
    0 采集 收起 来源:python中多态

    2018-03-22

  • PY中多态 类具有继承关系,并且子类类型可以向上转型看作父类类型,如果我们从Person派生出Student和Teacher,并且都写了一个whoAmI()方法 def whoAmI(self): return 'I am a Student,my name is %s' %self.name 在一个函数中,如果我们接收一个变量x,则无论该x是Person、Student还是Teacher,都可以打印出正确结果 这种行为成为多态。 方法调用作用将在x的实际类型上。s是student类型,它实际上拥有自己的whoAmI()方法以及从Person继承的whoAmI方法 但是调用s.whoAmI()总是先查找它自己的定义,如果没有定义,就顺着继承链向上查找,直到在某个父类中找到为止 PY是动态语言,所以传给函数who_am_i(x)的参数x不一定是Person或Person的子类型。任何数据类型的实例都可以,只要它有一个whoAmI()方法即可 这是动态语言和静态语言(如Java)的最大差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用
    查看全部
    0 采集 收起 来源:python中多态

    2017-06-06

  • PY中判断类型 函数isinstance()可以判断一个变量的类型,既可以用在PY内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型
    查看全部
  • PY中继承一个类 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person 然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)
    查看全部
  • PY的继承特点 1.总是从某个类继承 2.不要忘记调用super().__init__方法 忘记的话父类的属性可能没有被正确地初始化
    查看全部
  • has关系应该使用组合而非继承
    查看全部
  • self大于s,return -1,是倒序,A的小于T
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-06-06

  • 特殊方法
    查看全部
  • getattr()同样可以获取属性值
    查看全部
  • 在调用person类时加上属性名,定义初始化属性时只需要**kw就可以了
    查看全部

举报

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

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