Python奉行“一切皆对象”设计哲学,所有值(含数字、字符串、函数、类、类型本身)均为对象,具备类型、身份和值,可赋值、传递、返回、存储,并支持反射操作。
“一切皆对象”是 Python 的核心设计哲学,意思是 Python 中所有值——包括数字、字符串、函数、模块、类,甚至类型本身——都有对应的对象,都具备对象的基本特征:有类型、有身份(内存地址)、有值,并且可以被赋值给变量、作为参数传递、作为返回值、存入容器等。
所有值都有类型和身份
每个值在 Python 中都是某个类的实例,哪怕是最简单的整数:
是
类的实例,
返回
是
类的实例,
能拿到它在内存中的唯一标识
就连
、
这些类型本身,也是
类的实例:
是
函数和类也是对象,可操作、可传递
这打破了传统编程中“代码”与“数据”的严格界限:
你可以把函数赋给变量:
,然后调用
可以把函数作为参数传给另一个函数:
中的
就是对象
类本身也是对象,可以动态创建、修改或传递:
直接生成一个类
类型系统统一,没有“原始类型”例外
不像 Java 有
(基本类型)和
(对象)之分,Python 没有这种割裂:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Python免费学习笔记(深入)
”;
不是“内建符号”,而是一个真实的
对象,拥有方法:
返回
和
是
类的两个唯一实例,而
本身继承自
(所以
为
)
甚至
也是
类的唯一实例,
返回
运行时可检查、可修改(有限度)
因为一切都是对象,Python 提供了丰富的反射能力:
列出对象所有属性和方法
动态获取属性
对用户定义类的实例,还能动态添加属性:
注意:内置类型如
、
的实例不可变且不允许动态加属性,这是实现上的保护,不违背“一切皆对象”的原则
这个设计让 Python 灵活、一致、易于扩展,也是装饰器、元类、动态导入等高级特性的底层基础。不复杂但容易忽略。
42inttype(42)"hello"strid("hello")intstrtypetype(int)my_func = lenmy_func("abc")sorted([3,1,2], key=str)strMyClass = type('MyClass', (), {})intInteger5int5.bit_length()3TrueFalseboolboolintTrue == 1TrueNoneNoneTypetype(None)dir(x)getattr(obj, 'attr', default)obj.new_attr = 42intstr