《Python编程从入门到实践》学习笔记09类

#创建和使用类
#创建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.")

My dog’s name is Whllie.
My dog is 6 years old.

#访问属性
my_dog.name

‘Whllie’

#调用方法
my_dog.sit()
my_dog.roll_over()

Whllie is now sitting.
Whllie 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 Audi A4

#给属性指定默认值
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()

2019 Audi A4
This car has 0 miles on it.

my_new_car.odometer_reading=23
my_new_car.read_odometer()

This car has 23 miles on it.

#通过方法修改属性的值
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()

2019 Audi A4
This car has 23 miles on it.

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()

2019 Audi A4
This car has 23 miles on it.
You can’t roll back an odometer!
This car has 23 miles on it.

#通过方法对属性的值进行递增
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()

2019 Audi A4
This car has 23500 miles on it.
This car has 23600 miles on it.

#继承
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 Tesla Model 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()

2019 Tesla Model S
This car has a 75-kwh battery.

#重写父类的方法
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()

2019 Tesla Model S
This car doesn’t needs a gas tank!

#将示例添加属性
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()

2019 Tesla Model S
This car has a 75-kwh battery.

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()

2019 Tesla Model S
This car has a 75-kwh battery.

猜你喜欢

转载自blog.csdn.net/qq_44672855/article/details/131305097
今日推荐