01. 详解 Python 的对象和类
初学者推荐先学习Python3 入门教程!
在编程领域中,通常把现实世界中的实体称为对象,例如:
- 美国总统特朗普
- 中国明星成龙
- 上海中心大厦
- 北京城奥大厦
这里需要注意的是,对象指的是一个具体的实体,不用于指代一个抽象的群体。例如:特朗普是一个特定的具体的人,可以说 “特朗普是一个对象”。他是一个美国人,因为美国人是一个抽象的概念,指代的是一类人,因此不能说 “美国人是一个对象”。
类似的,上海中心大厦、北京城奥大厦这些具体的大厦可以被称为对象,但是不使用 “大厦是一个对象” 这样的说法。
1. 对象的属性和行为
现实世界中的实体有属性和行为,下面的表格列举了特朗普和成龙的属性和行为:
| 对象 | 属性 | 行为 |
|---|---|---|
| 特朗普 | 姓名、年龄 | 自我介绍 |
| 成龙 | 姓名、年龄 | 自我介绍 |
行为又被称为方法,它是对属性的操作,包括读取操作和修改操作。例如,在特朗普的自我介绍行为中,会读取他的属性:姓名和年龄。
2. Python 中的对象
2.1 对象的例子
在 Python 中,对象的例子如下:
- 字符串 ‘Hello’
- 列表 [‘www’, ‘mybj123’, ‘com’]
- 元组 (‘www’, ‘mybj123’, ‘com’)
- 字典 {‘name’: ‘Liuneng’, ‘age’: 30}
2.2 对象的属性
对象的属性示例如下:
>>> string = 'Hello' >>> print(string.__doc__) str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new string object from the given object. >>> list = ['a', 'b', 'c'] >>> print(list.__doc__) list() -> new empty list list(iterable) -> new list initialized from iterable's items
- 在第 1 行,创建字符串对象 ‘Hello’
- 在第 2 行,打印字符串 ‘Hello’ 的属性 __doc__,该属性描述了字符串对象的用法
- 在第 6 行,创建列表对象 list
- 在第 7 行,打印列表 list 的属性 __doc__,该属性描述了列表对象的用法
2.3 对象的行为
对象的行为示例如下:
>>> string = 'Hello'
>>> string.upper()
'HELLO'
>>> list = ['a', 'b', 'c']
>>> list.append('d')
>>> list
['a', 'b', 'c', 'd']
- 在第 1 行,创建字符串对象 ‘Hello’
- 在第 2 行,调用对象的 upper 方法,获取字符串的大写
- 在第 4 行,创建列表对象 list
- 在第 5 行,调用对象的 append 方法,向列表追加一个元素
3. 什么是类
3.1 类的定义
在现实世界中,具体的实体被称为对象,观察这些对象的属性和行为,发现可以使用相同的特征去描述一类对象。例如:
| 对象 | 属性和行为 |
|---|---|
| 美国总统特朗普 | 姓名、年龄、工作 |
| 中国明星成龙 | 姓名、年龄、工作 |
| 上海中心大厦 | 高度、业主、维护 |
| 北京城奥大厦 | 高度、业主、维护 |
可以使用 “姓名、年龄、工作” 等特征去描述特朗普和成龙这一类对象,使用 “高度、业主、维护” 等特征去描述上海中心大厦、北京城奥大厦这一类对象。
在编程领域,类是对一组具有相同属性和行为的对象的抽象。例如, “人” 是一个抽象的概念,它是一个类或者类别,描述了具有 “姓名、年龄、工作” 等特征的一组对象;“楼” 是一个抽象的概念,它是一个类或者类别,描述了具有 “高度、业主、维护” 等特征的一组对象。
3.2 类和对象的关系和区别
下面的列表总结了类和对象的关系和区别:
- 对象是一个具体的实体,例如:特朗普是一个对象
- 类是对多个具有相同属性的实体的抽象,例如:特朗普和成龙等实体具有 “姓名、年龄、工作” 等属性,通过归纳形成一个抽象概念——人,人是一个类
- 对象与类的关系:对象属于某个类、对象不属于某个类,例如:特朗普是一个人,或者说特朗普属于人类
4. Python 中的类
本节讲解如何在 Python 中创建类,并利用类来创建对象。首先创建一个具有 name 和 age 两个属性的类——Person,然后利用 Person 这个类创建两个对象—— Liuneng 和 Zhaosi,代码如下:
class Person:
def introduce(self):
print('My name is %s, I am %d years old' % (self.name, self.age))
Liuneng = Person()
Liuneng.name = 'Liuneng'
Liuneng.age = 10
Zhaosi = Person()
Zhaosi.name = 'Zhaosi'
Zhaosi.age = 20
Liuneng.introduce()
Zhaosi.introduce()
- 在第 1 行,使用 class 关键字创建类 Person,类 Person 是对具有 name 和 age 属性的对象的抽象
- 在第 2 行,定义了 Person 的方法 introduce,introduce 方法描述了类 Person 的行为
- 在第 3 行,类 Person 的 introduce 方法输出 Person 的属性 name 和 age
- 参数 self 指向当前的对象
- 注意,本节讲解对象和类的区别,在词条 “Python 类属性和实例属性” 详细介绍 self 参数
- 在第 5 行,根据类 Person 创建一个新的对象 Liuneng
- 在第 6 行,设置对象 Liuneng 的 name 属性为 ‘Liuneng’
- 在第 7 行,设置对象 Liuneng 的 age 属性为 10
- 在第 9 行,根据类 Person 创建一个新的对象 Zhaosi
- 在第 10 行,设置对象 Zhaosi 的 name 属性为 ‘Zhaosi’
- 在第 11 行,设置对象 Zhaosi 的 age 属性为 20
- 在第 12 行,调用对象 Liuneng 的 introduce 方法
- 在第 13 行,调用对象 Zhaosi 的 introduce 方法
程序运行,输出结果如下:
My name is Liuneng, I am 10 years old My name is Zhaosi, I am 20 years old
总结,在上面的例子中,类和对象分别是:
- Person 是一个类
- Liuneng 是一个对象
- Zhaosi 是一个对象
5. 小结
python 对象和类的概念比较抽象,同学们可以把生活中的一些场景做一下代入。对象和类的是进行面向对象开发的基础,所以一定要好好掌握对象和类的概念,下一节我们来学习下类属性和实例属性。
以上关于01. 详解 Python 的对象和类的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 01. 详解 Python 的对象和类

微信
支付宝