07-类

  • 阅读: 622
  • 更新: 2022-06-11

类把数据与功能绑定在一起。
创建新类就是创建新的对象类型,从而创建该类型的新实例 。

1. 类定义

  1. 定义类使用关键字 class,后跟类名:
1
2
class MyClass:
    pass

类名后可加括号,没有参数时可不加

2. 实例对象

  1. 类的实例化使用函数表示法:
1
x = MyClass()

变量 x 就是 MyClass 类的一个实例对象

3. 实例的初始化

  1. 实例的初始化使用一个名为 __init__() 的特殊方法(固定用法)。
  2. 当一个类定义了 __init__() 方法时,类的实例化操作会自动为新创建的类实例发起调用 __init__()
1
2
3
4
5
6
7
8
9
class Student():
    """学生类"""
    def __init__(self, name, age):
        self.name = name
        self.age = age


zhangsan = Student('zhangsan', 18)
lisi = Student('lisi', 19)

上面定义了两个属性:姓名name 和 年龄age
之后的学生类Student 的所有实例(比如 zhangsanlisi)均会有这两个属性

4. 实例属性(变量)

  1. 实例的属性通过 self.{变量名} 来定义
  2. 多个实例之间,它们的属性是不同的变量,不影响各自的值

5. 实例方法(函数)

  1. 实例方法就是类中定义的函数;用于操作实例属性
  2. 实例方法第一个参数为 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

1
2
3
4
5
class StudentGirl(Student):
    """女学生类"""
    def get_age(self):
        """获取年龄"""
        return self.age - 1

继承可以重写父类的方法,比如上面就重写了父类的获取年龄的方法。默认女生年龄少报 1 岁

7. 总结

类的使用方法很简单,难的是类的概念需要弄清楚;我总结了几点:

  1. 类是一群类似的群体,比如人类、动物、学生等等
  2. 子类和类的实例需要重点区分开:具体到个人,比如张三就是人类的实例;而不能说张三是人类的子类,你可以说黄种人是人类的子类
实例 子类
张三 黄种人
宠物 阿黄
天安门东路 高速公路
阿飞 燕子

=== 全文完 ===


欢迎加入QQ群:778391413

京公网安备 11011302003970号 京ICP备2022012301号-1