类(py)
创建和使用类
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(self.name.title() + "is now sitting")
def roll_over(self):
print(self.name.title() + "rolled over!")
my_dog = Dog('willie', 6)
my_dog.sit()
my_dog.roll_over()
print("my dog's name is " + my_dog.name.title() + ".")
print("my dog's name is ", str(my_dog.age) + ".")
给属性指定默认值
直接在类里面给出属性默认值就好
修改属性值:
方法1:直接将实例化的属性修改
方法2:在方法里写一个修改属性的方法
继承
新创建的类不需要从头开始,可以继承已有的类
被继承的类被称为父类,继承的类成为子类
class Car():
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name
def read_odometer(self):
print("This car has " + str(self.odometer_reading) + "miles on it.")
def update_odometer(self, mileage):
if mileage > self.odometer_reading:
self.odometer_read = mileage
else:
print("You can't roll back on odometer!")
def increment_odometer(self, miles):
self.odometer_reading += miles
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery_size = 70
def describe_battery(self):
print("This car has a" + str(self.battery_size) + "-kwh battery")
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
将实例用作属性
当一个类的内容很多了,可以将类的一部分提取出来拆成若干个协同工作的小类
class Battery():
def __int__(self, battery_size = 70):
self.battery_size = battery_size
def describe_battery(self):
print("This car has a" + str(self.battery_size) + "-kwh battery")
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
my_tesla.battery.describe_battery()
将电池这个属性分离出去,单独创建一个类,那么这个电动汽车这个电池这个属性就是一个类
class Battery():
def __init__(self, battery_size = 70):
self.battery_size = battery_size
def describe_battery(self):
print("This car has a " + str(self.battery_size) + "-kwh battery")
def get_range(self):
if self.battery_size == 70:
range = 240
elif self.battery_size == 85:
range = 270
message = "This car can go approximately " + str(range)
message += "miles on a full charge. "
print(message)
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
my_tesla.battery.get_range()
导入类
通俗点就是运用另一个程序中的类,减少代码冗余
- 导入单个的类
car.py 是上述代码的 Car 类
my_car.py
from car import Car
my_new_car = Car('audiz','a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading = 23
my_new_car.read_odometer()
- 导入多个类
from car import Car, ElectricCar
- 导入整个模块
import car
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话