07-类
类把数据与功能绑定在一起。
创建新类就是创建新的对象类型,从而创建该类型的新实例 。
1. 类定义
- 定义类使用关键字
class
,后跟类名:
类名后可加括号,没有参数时可不加
2. 实例对象
- 类的实例化使用函数表示法:
变量 x
就是 MyClass
类的一个实例对象
3. 实例的初始化
- 实例的初始化使用一个名为
__init__()
的特殊方法(固定用法)。
- 当一个类定义了
__init__()
方法时,类的实例化操作会自动为新创建的类实例发起调用 __init__()
。
| class Student():
"""学生类"""
def __init__(self, name, age):
self.name = name
self.age = age
zhangsan = Student('zhangsan', 18)
lisi = Student('lisi', 19)
|
上面定义了两个属性:姓名name
和 年龄age
之后的学生类Student
的所有实例(比如 zhangsan
和 lisi
)均会有这两个属性
4. 实例属性(变量)
- 实例的属性通过
self.{变量名}
来定义
- 多个实例之间,它们的属性是不同的变量,不影响各自的值
5. 实例方法(函数)
- 实例方法就是类中定义的函数;用于操作实例属性
- 实例方法第一个参数为
self
,代表实例本身,固定用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 | class Student():
"""学生类"""
def __init__(self, name, age):
self.name = name
self.age = age
def get_age(self):
"""获取年龄"""
return self.age
def set_age(self, new_age):
"""修改年龄"""
self.age = new_age
zhangsan = Student('zhangsan', 18)
lisi = Student('lisi', 19)
print(zhangsan.age) # 18
print(zhangsan.get_age()) # 18
zhangsan.set_age(20)
print(zhangsan.age) # 20
|
6. 类的继承
比如我们在学生类Student
的基础上创建一个女学生类StudentGirl
:
| class StudentGirl(Student):
"""女学生类"""
def get_age(self):
"""获取年龄"""
return self.age - 1
|
继承可以重写父类的方法,比如上面就重写了父类的获取年龄的方法。默认女生年龄少报 1 岁
7. 总结
类的使用方法很简单,难的是类的概念需要弄清楚;我总结了几点:
- 类是一群类似的群体,比如人类、动物、学生等等
- 子类和类的实例需要重点区分开:具体到个人,比如张三就是人类的实例;而不能说张三是人类的子类,你可以说黄种人是人类的子类
类 |
实例 |
子类 |
人 |
张三 |
黄种人 |
宠物 |
阿黄 |
狗 |
路 |
天安门东路 |
高速公路 |
鸟 |
阿飞 |
燕子 |
=== 全文完 ===
欢迎加入QQ群:855013471