python 类 10

1.创建和使用类

#在python中,首字母大写的名称指的是类
class Dog:
    #定义方法,该方法是一个特殊方法,每当Dog类创建新实例时,python都会自动运行它
    #这个方法的名称中,开头和末尾各有两个下划线,这是一种约定。
    #self是必须的形参,指本身实例的引用
    def __init__(self,name,age):
        #定义属性__init__
        self.name=name 
        self.age=age

    #定义普通的方法,有一个形参self
    def sit(self):
        print(f"{self.name}is now sitting")

    def rool_over(self):
        print(f"{self.name} rolled over")

#创建一个实例
my_dog=Dog('Willie',6)
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")
my_dog.sit()
my_dog.rool_over()

 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=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


 #电动汽车, 继承了Car
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())        

3.重写

 #电动汽车, 继承了Car
class ElectricCar(Car):

    def __init__(self, make,model,year):
         #初始化父类的属性
         super().__init__(make,model,year)
         self.battery_size=75

        #重写
    def get_descriptive_name(self):
        long_name=f"{self.year}{self.make}{self.model}{self.battery_size}"
        return long_name.title()

 4.将实例用作属性

 #电动汽车, 继承了Car
class ElectricCar(Car):

    def __init__(self, make,model,year):
         #初始化父类的属性
         super().__init__(make,model,year)
         #将实例用作属性
         self.battery=Battery()


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.")


my_tesla = ElectricCar('tesla', 'model s', 2019)
print(my_tesla.get_descriptive_name())
#调用
my_tesla.battery.describe_battery()  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值