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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 一个.py文件就是python中的一个模块。 引入模块时:import 模块名 包是将模块包含起来的一个作用,引入:import 包名.模块名.函数 如何区分包和普通目录: 包下面有个__init__.py,每层都必须要有,只有这样Python才会将它当做包来处理
    查看全部
  • PY中的__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) 现在,在交互式命令行下用 print 试试: >>> p = Person('Bob', 'male') >>> print p (Person: Bob, male) 但是,如果直接敲变量 p: >>> p <main.Person object at 0x10c941890> 似乎__str__() 不会被调用。 因为 Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。 有一个偷懒的定义__repr__的方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) __repr__ = __str__
    查看全部
  • 正确实现特殊方法
    查看全部
  • PY定义的特殊方法(部分)
    查看全部
  • PY的特殊方法
    查看全部
  • PY如何把任意变量变成str? 因为任何数据类型的实例都有一个特殊方法:__str__() >>>print p.__str__ <__main__.Person object at 0x10da9e850> 如果给Person类加上__str__()这个特殊方法: >>> p = Person('Bob','male') >>>print p <Person:Bob,male> 就可以打印出Person这个实例
    查看全部
  • 内层函数引用外层函数变量,返回内层函数,成为闭包
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-07

  • 标记 不会写
    查看全部
  • 标记 模模糊糊不会写
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    查看全部
  • 1. 用 type() 函数获取变量的类型,它返回一个 Type 对象: >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'> 2. 用 dir() 函数获取变量的所有属性: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] 实例变量,dir()返回所有实例属性,包括`__class__`这类有特殊意义的属性。注意到方法`whoAmI`也是 s 的一个属性。 3. filter()函数去掉`__xxx__`这类的特殊属性,只保留我们自己定义的属性 4. dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了: >>> getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age' >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • 1. Python允许从多个父类继承,称为多重继承。 2. D 同时继承自 B 和 C,也就是 D 拥有了 A、B、C 的全部功能。多重继承通过 super()调用__init__()方法时,A 虽然被继承了两次,但__init__()只调用一次 3. 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。 4. Python的网络服务器有TCPServer、UDPServer、UnixStreamServer、UnixDatagramServer,而服务器运行模式有 多进程ForkingMixin 和 多线程ThreadingMixin两种。
    查看全部
  • 1. json.load()方法不一定用于文件使用,有read方法就可以用,所以Student类里面定义一个read()方法就可以用json.load() 2. json是不支持单引号的,所以当使用单引号后会产生报错。
    查看全部
    0 采集 收起 来源:python中多态

    2017-06-06

  • 1. 多态。也就是说,方法调用将作用在 x 的实际类型上。s 是Student类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。 2. 由于Python是动态语言,所以,传递给函数 who_am_i(x)的参数 x 不一定是 Person 或 Person 的子类型。任何数据类型的实例都可以,只要它有一个whoAmI()的方法即可: class Book(object): def whoAmI(self): return 'I am a book' 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。 3. 任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。 4. 编码:把一个Python对象编码转换成Json字符串 json.dumps();解码:把Json格式字符串解码转换成Python对象 json.loads()
    查看全部
    0 采集 收起 来源:python中多态

    2017-06-06

  • 1. 函数isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str、list、dict,也可以用在我们自定义的类,它们本质上都是数据类型。 2. 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。 3. 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。
    查看全部

举报

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

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