Python的对象包含:
1. 对象:
- 对象是类的实例,拥有类定义的属性和方法
- 使用类名()创建对象,可以向__init__方法传参初始化对象
2. 标识和类型:
- 使用id()获取对象的标识(内存地址)
- 使用type()获取对象的类型
- 类型可以是内置类型,也可以是自定义类
3. 对象比较:
- 使用 == 比较对象的值(内容)
- 使用 is 比较对象的标识(id)
- 通常只有数值类型(int, float, bool等)的对象可以用 == 进行比较,其他类型应使用 is 比较
4. 属性访问和方法调用:
- 使用 . 访问对象的属性和方法
- 例如: 对象.属性 对象.方法()
5. 魔法方法:
- 用双下划线开头和结尾的方法,如__init__, __add__等
- 这些方法会在特定的操作或函数调用时自动触发
- 可以重写这些魔法方法,实现定制的功能
- 例如:__init__用于初始化对象,__add__用于对象的加法运算等
6. 可变对象和不可变对象:
- 可变对象:列表,字典,集合等,对其操作会改变原对象
- 不可变对象:数值类型,字符串,元组等,对其操作会生成新对象,原对象不变
示例:
python # 对象和类型 p = Person('John') id(p) # 4356809728 type(p) # <class 'Person'> # 对象比较 a = b = [1, 2, 3] a == b # True a is b # True a = [1, 2, 3]; b = [1, 2, 3] a == b # True a is b # False # 属性和方法访问 p.name # John p.say_hello() # Hello, I am John # 魔法方法 class Person: def __init__(self, name): self.name = name def __add__(self, other): return self.name + other.name p1 = Person('John ') p2 = Person('Doe') p1 + p2 # John Doe # 可变对象和不可变对象 a = [1, 2, 3] a.append(4) a # [1, 2, 3, 4] s = 'abc' s.replace('a', 'x') #xbc s # 'abc' # s并未改变 |
对象是面向对象编程的核心,要深入理解对象的概念和用法。要熟悉如何创建和使用对象,访问其属性与方法。
要注意对象的标识和类型,明确对象比较的方式。要在必要时重写魔法方法,实现定制的功能。要了解可变对象和不可变对象的差异,避免出现意外的问题。
对象的理解和运用是掌握面向对象编程的关键,要在项目中大量实践,熟练使用,写出清晰的面向对象代码。