古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。

Python高级编程和异步I/O并发编程笔记 1 python中一切皆对象

Python admin 457℃ 0评论

python相比Java这种静态语言拥有更加彻底的面向对象设计(Java中区分类class与对象object,而python中class同样属于对象),python一切皆对象是其灵活性的根本,如python元类编程、猴子补丁。

python中函数与类也属于对象,被划分为python的一等公民(一等公民的特性:赋值给一个变量、可以添加到集合对象中、可以作为参数传递给函数、可以作为函数的返回值,以上也是python装饰器的实现原理)。其他的诸如代码、模块也是对象。python用类来实例化对象的过程,可以将类看做一个模板,然后使用模板生成对象。由于类也是一个对象,所以我们可以动态地修改其属性。

type、object和class的关系

关键是:object是type的实例,所有内置类都继承自object,type也继承了object,type创建了所有对象。所有对象(包括type自己)都是type的实例。静态语言中类加载到内存后,因为已经编译完成,所以修改起来需要很高的难度,而动态语言python就可以很灵活的修改。type实例自身的原理在于python是使用C编写的,对象其实也就是内存块,使用指针可以很简单地实现。

python中的常见内置类型

python中对象有三个特征:身份(对象在内存中的地址,使用id()查看)、类型、值。

python常见的内置类型:None(全局仅有一个)、数值、迭代类型、序列类型、映射(dict)、集合、上下文管理类型、其他。

python在解释器启动时会生成一个全局None对象。数值类型包含int、float、complex、bool。序列类型包含list、二进制序列(bytes、bytearray、memoryview)、range、tuple、str、array。集合包含set和frozenset(不可修改的set),由于set和dict实现原理都是一致的,性能非常高。其他类型包含模块类型、class和实例、函数类型、方法类型、代码类型、object类型、type类型、ellipsis类型(省略号)和notimplemented类对象(面向对象的高级设计时会使用)、生成器对象等。

转载请注明:北凉柿子 » Python高级编程和异步I/O并发编程笔记 1 python中一切皆对象

喜欢 (4)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. :mrgreen:
    admin2019-01-10 18:58 回复