#创建和使用类
#创建Dog类
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self,name,age):
"""初始化属性name,age"""
self.name=name
self.age=age
def sit(self):
"""模拟小狗收到命令时蹲下"""
print(f"{
self.name} is now sitting.")
def roll_over(self):
"""模拟小狗收到命令时打滚"""
print(f"{
self.name} roll over!")
my_dog=Dog('Whllie',6)
print(f"My dog's name is {
my_dog.name}.")
print(f"My dog is {
my_dog.age} years old.")
Мою собаку зовут Уэлли.
Моей собаке 6 лет.
#访问属性
my_dog.name
'Улли'
#调用方法
my_dog.sit()
my_dog.roll_over()
Вилли сейчас сидит.
Хоть перевернись!
#创建多个实例
my_dog=Dog('Whllie',6)
your_dog=Dog('Lucy',3)
#使用类和实例
class Car:
"""一次模拟汽车的简单尝试"""
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
def get_descriptive_name(self):
long_name=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
my_new_car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name())
2019 Ауди А4
#给属性指定默认值
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
my_new_car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
Audi A4 2019 года
На этой машине 0 миль.
my_new_car.odometer_reading=23
my_new_car.read_odometer()
У этой машины пробег 23 мили.
#通过方法修改属性的值
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
self.odometer_reading=mileage
my_new_car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
Audi A4 2019 года
Этот автомобиль проехал 23 мили.
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")
my_new_car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
my_new_car.update_odometer(-1)
my_new_car.read_odometer()
Audi A4 2019 года
Этот автомобиль проехал 23 мили.
Нельзя откатить одометр!
У этой машины пробег 23 мили.
#通过方法对属性的值进行递增
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
my_new_car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23500)
my_new_car.read_odometer()
my_new_car.increment_odometer(100)
my_new_car.read_odometer()
Audi A4 2019 года
Пробег этого автомобиля составляет 23500 миль.
На этой машине пробег 23600км.
#继承
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
2019 Тесла Модель S
#给子类定义属性和方法
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=75
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
Tesla Model S 2019 года
Этот автомобиль имеет батарею на 75 кВтч.
#重写父类的方法
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
def fill_gas_tank(self):
print("This car needs a gas tank!")
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=75
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
def fill_gas_tank(self):
print("This car doesn't needs a gas tank!")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.fill_gas_tank()
Tesla Model S 2019
Этому автомобилю не нужен бензобак!
#将示例添加属性
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
def fill_gas_tank(self):
print("This car needs a gas tank!")
class Battery:
def __init__(self,battery_size=75):
self.battery_size=battery_size
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=75
self.battery=Battery()
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
def fill_gas_tank(self):
print("This car doesn't needs a gas tank!")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
Tesla Model S 2019 года
Этот автомобиль имеет батарею на 75 кВтч.
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=f"{
self.year} {
self.make} {
self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {
self.odometer_reading} miles on it.")
def update_odometer(self,mileage):
if mileage>=self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
def fill_gas_tank(self):
print("This car needs a gas tank!")
class Battery:
def __init__(self,battery_size=75):
self.battery_size=battery_size
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
def get_range(self):
if self.battery_size==75:
range=260
elif self.battery_size==100:
range=315
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=75
self.battery=Battery()
def describe_battery(self):
print(f"This car has a {
self.battery_size}-kwh battery.")
def fill_gas_tank(self):
print("This car doesn't needs a gas tank!")
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()
Tesla Model S 2019 года
Этот автомобиль имеет батарею на 75 кВтч.