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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python适合用来处理数据,Python提供了处理数据的便捷方法。
    查看全部
  • getattr() 和 setattr( )函数:已知一个属性名称,获取或者设置对象的属性 >>> getattr(s, 'name') # 获取s实例的name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置s实例的name属性为Adam >>> s.name 'Adam' >>> getattr(s, 'age') # 获取s实例的age属性,但是属性不存在,报错 >>> getattr(s, 'age', 20) # 获取s实例的age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • 可以用 dir() 函数获取变量的所有属性: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] >>> dir(s) ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name', 'score', 'whoAmI'] 对于实例变量,dir()返回所有实例属性,包括`__class__`这类有特殊意义的属性。注意到方法`whoAmI`也是 s 的一个属性。
    查看全部
  • type() 函数获取变量的类型,它返回一个 Type 对象: >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'>
    查看全部
  • r'...' 在Python 2.x中是一种字节码字符串, ur'...'是unicode字符串
    查看全部
    0 采集 收起 来源:python中多态

    2016-05-03

  • 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()。
    查看全部
    0 采集 收起 来源:python中多态

    2016-05-03

  • 动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
    查看全部
    0 采集 收起 来源:python中多态

    2016-05-03

  • 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。
    查看全部
  • isinstance()函数可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict isinstance(变量, 类型),返回True或False
    查看全部
  • class Person(object): (4个空格) def __init__(self, name, gender): (8个空格) self.name = name (8个空格) self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): (4个空格) def __init__(self, name, gender, score): (8个空格) super(Student, self).__init__(name, gender) (8个空格) self.score = score 子类继承父类,一定要 super(Student, self).__init__(name, gender)初始化父类,否则继承自父类的子类将没有父类已有的属性
    查看全部
  • 总是从某个类继承,默认继承object类
    查看全部
  • Student类和Book类是has关系
    查看全部
  • 子类和父类是is关系
    查看全部
  • 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 要在class中定义类方法,需要这么写: class Person(object): (4个空格) count = 0 (4个空格) @classmethod (4个空格) def how_many(cls): (8个空格) return cls.count (4个空格) def __init__(self, name): (8个空格) self.name = name (8个空格) Person.count = Person.count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many() 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。 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 给一个实例动态添加方法并不常见,直接在class中定义要更直观。
    查看全部

举报

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

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