第七章 类——面向对象的编程
引子
Why:面向对象更符合人类对客观世界的抽象和理解
-
一切皆对象
一只小狗,一把椅子,一张信用卡,一条巧克力。。。 -
一切对象,都有自己内在的属性
狗狗的品种、椅子的质地、信用卡的额度、巧克力的口味。。。 -
一切行为,皆是对象的行为
狗狗蹲下、椅子移动位置、刷信用卡、巧克力融化了。。。
How:类是对象的载体
不同年龄、肤色、品质的猫,每一只都是一个对象
他们有一个共同的特征:都是猫
我们可以把一类对象的公共特征抽象出来,创建通用的类
# 创建类
class Cat():
"""模拟猫"""
def __init__(self, name):
"""初始化属性"""
self.name = name
def jump(self):
"""模拟猫跳跃"""
print(self.name + " is jumping")
# 用类创建实例
my_cat = Cat("Loser")
your_cat = Cat("Lucky")
# 调用属性
print(my_cat.name)
print(your_cat.name)
Loser
Lucky
# 调用方法
my_cat.jump()
your_cat.jump()
Loser is jumping
Lucky is jumping
7.1 类的定义
三要素:类名、属性、方法
7.1.1 类的命名
-
要有实际意义
-
驼峰命名法——组成的单词首字母大写
Dog、 CreditCard、 ElectricCar
# class 类名:
"""类前最好空两行"""
class Car():
"""对该类的简单介绍"""
pass
"""类后最好也空两行"""
7.1.2 类的属性
# def __init__(self,要传递的参数) 初始化类的属性
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" # 相当于类内部的变量
self.brand = brand # 汽车的品牌
self.model = model # 汽车的型号
self.year = year # 汽车出厂年份
self.mileage = 0 # 新车总里程初始化为0
7.1.3 类的方法
# 相对于类内部定义的函数
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" # 相当于类内部的变量
self.brand = brand # 汽车的品牌
self.model = model # 汽车的型号
self.year = year # 汽车出厂年份
self.mileage = 0 # 新车总里程初始化为0
def get_main_information(self): # self不能省
"""获取汽车主要信息"""
print("品牌:{} 型号:{} 出厂年份:{}".format(self.brand, self.model, self.year))
def get_mileage(self):
"""获取总里程"""
return "行车总里程:{}公里".format(self.mileage)
My_Car = Car("Audi","sb",2019)
print(My_Car.get_mileage())
行车总里程:0公里
7.2 创建实例
7.2.1 实例的创建
将实例赋值给对象,实例化过程中,传入相应的参数
v = 类名(必要的初始化参数)
my_new_car = Car("Audi", "A6", 2018)
7.2.2 访问属性
实例名.属性名
print(my_new_car.brand)
print(my_new_car.model)
print(my_new_car.year)
Audi
A6
2018
7.2.3 调用方法
class Car():
"""模拟汽车"""
def __init__(self, brand, model, year):
"""初始化汽车属性""" # 相当于类内部的变量
self.brand = brand # 汽车的品牌
self.model