文章目录
- 1、引入
- 2、操作属性
- 3、继承
- 4、将实例用作属性
- 5、导入类
1、引入
- 类和实例
使用类可以模拟任何东西,下面是一个小狗的简单类Dog,它表示任意小狗,实例my_dog表示一个具体的小狗 - 方法
类中的函数称为方法,有关函数的一切均适用于方法
__init__是一个特殊的方法,根据类创建实例时,会自动运行 - 形参self
必不可少,且必须位于其他参数的前面
创建实例时会自动传递实参self
以self为前缀的变量可供类中的所有方法使用
以self为前缀的变量可被类的任何实例访问 - 属性
name和age是my_dog的属性
# 创建类
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def cmd_sit(self):
print(f'{self.name} is now sitting')
def cmd_move(self, distance):
print(f'{self.name} will move '
f'forward {distance} meters')
# 创建实例
my_dog = Dog('Wille', 3)
# 访问属性
print(my_dog.name + ',' + str(my_dog.age))
# 调用方法
my_dog.cmd_sit()
my_dog.cmd_move(2)
2、操作属性
# 创建类
class Dog:
def __init__(self, name, color):
self.name = name
self.color = color
self.age = 2 # 给属性指定默认值
def print_info(self):
print(self.name, end=',')
print(self.color, end=',')
print(self.age)
def grow_up(self, age):
""" 通过方法修改属性值 """
self.age += age
my_dog = Dog('cinnamon', 'brown')
my_dog.print_info()
my_dog.grow_up(2)
my_dog.print_info()
# 直接修改属性值
my_dog.age = 5
my_dog.print_info()
3、继承
一个类继承另一个类,原有的称为父类,新类称为子类
子类继承父类的所有属性和方法
子类可定义自己的属性和方法
子类可重写父类方法
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.mileage = 0 # 里程数
def print_success(self):
print('Successfully created')
def print_info(self):
make = self.make
model = self.model
year = self.year
print(f"{year} {make} {model}")
class ElectricCar(Car):
"""电动汽车"""
def __init__(self, make, model, year, battery_size):
# 继承父类的属性
super().__init__(make, model, year)
# 定义新的属性
self.battery_size = battery_size
def print_info(self):
""" 重写父类方法 """
make = self.make
model = self.model
year = self.year
battery_size = self.battery_size
print(f"{year} {make} {model} {battery_size}KWh")
my_byd = ElectricCar('BYD', 'TangEV', 2022, 108.8)
my_byd.print_success() # 调用父类方法
my_byd.print_info()
4、将实例用作属性
class Battery:
def __init__(self, size):
self.size = size
def print_endurance(self):
endurance = self.size * 6
print(f"This car has a range of {endurance}km")
class ElectricCar:
def __init__(self, make, model, battery):
self.make = make
self.model = model
# 将实例用作属性
self.battery = Battery(battery)
def print_info(self):
make = self.make
model = self.model
battery = self.battery.size
print(f"{make} {model} {battery}KWh")
my_byd = ElectricCar('BYD', 'TangEV',108.8)
my_byd.print_info()
my_byd.battery.print_endurance()
5、导入类
- 导入单个类
from 模块名 import 类名
- 导入多个类
from 模块名 import 类名1, 类名2 #
- 导入所有类
from 模块名 import *
- 导入整个模块
import 模块名
使用时: 模块名.类名
笔记来源:《Python编程 从入门到实践》