目录
盏茶python(一) 语言特性及环境配置
盏茶python(二) 基本数据类型
盏茶python(三) 组合数据类型
盏茶python(四) 控制流
盏茶python(五) 函数
盏茶python(六) 类
本节我们将要讲解python类的部分,主要包括类的定义、创建实例及类的继承等内容。
1.为什么使用类
面向对象的编程更符合人类对客观世界的抽象和解释。
2.类的定义
类的三要素为类的名称、属性及方法。
2.1 类的命名
类的命名常会使用驼峰命名法,如Dog,CreditCard,类的定义前后一般空出两行。
2.2 类的属性
类的属性初始化方法如下
# 初始化类的属性
# def __init__(self.要传递的参数)
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
2.3 类的方法
类的方法定义如下
# 类的方法即类内部定义的函数
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
def get_brand(self):
print(self.brand)
3.创建实例
3.1 实例的创建
将实例赋值给对象,实例化过程中,传入相应的参数
# v = 类名(必要的初始化参数)
my_car = Car("BWM", "X1")
3.2 访问属性
# 实例名.属性名
print(my_car.brand)
3.3 调用方法
# 实例名.方法名(必要的参数)
print(my_car.get_brand())
3.4 属性修改
类的属性修改可以采用访问属性的方法进行属性的修改,也可以采用调用方法进行属性的修改。
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
def get_brand(self, new_brand):
self.brand = new_brand
my_car = Car("BWM", "X1")
my_car.brand = "BENCH"
my_car.get_brand("BENCH")
4.类的继承
已知A类,希望创建B类,使得B类继承A类的属性和方法,继承就是用过低层抽象继承高层抽象的过程。
4.1 简单的继承
继承会自动继承父类的所有方法,具体继承方法:
# class 子类名(父类名)
# 父类
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
def get_brand(self, new_brand):
self.brand = new_brand
# 子类
class ElectronicCar(Car):
def __init__(self, brand, model):
super().__init__(brand, model)
4.2 给子类添加属性和方法
添加方法:
# class 子类名(父类名)
# 父类
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
def get_brand(self, new_brand):
self.brand = new_brand
# 子类
class ElectronicCar(Car):
# 添加属性
def __init__(self, brand, model, battery_size):
super().__init__(brand, model)
self.battery_size = battery_size
# 添加方法
def get_electronic(self):
print(self.battery_size)
4.3 重写父类的方法-多态
添加方法:
# class 子类名(父类名)
# 父类
class Car():
def __init__(self, brand, model):
self.brand = brand
self.model = model
def get_brand(self, new_brand):
self.brand = new_brand
# 子类
class ElectronicCar(Car):
# 添加属性
def __init__(self, brand, model, battery_size):
# 声明继承父类属性
super().__init__(brand, model)
self.battery_size = battery_size
# 重写方法
def get_brand(self):
print("new get brand method")