chapter10 python创建类

这篇博客介绍了Python面向对象编程的基础概念,包括类的定义,如创建`Dog`和`Car`类,并展示如何初始化对象、定义方法以及修改属性值。此外,还探讨了继承的概念,通过`ElectricCar`类继承`Car`类,展示了子类如何继承和重写父类的方法。文章强调了练习在学习Python过程中的重要性,并推荐了牛客网作为学习资源,提供丰富的练习题和讨论区来提升编程技能。
摘要由CSDN通过智能技术生成

1.类的概念

#面向对象编程是最有效的软件编写方法之一。定义一大类对象都有的通用行为,基于类创建对象时,每个对象都自动具备这种通用行为,然后可根据需要为每个对象赋予独特属性。

class Dog():
    """模拟小狗"""
    def __init__(self, name,age):
        """初始化属性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('while',6)
print("My dog's name is "+my_dog.name.title())
print("My dog is "+str(my_dog.age)+" years old.")

my_dog.sit()
my_dog.roll_over()


out:My dog's name is While
My dog is 6 years old.
While is now sitting
While rolled over!

2.通过方法修改属性的值

class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
    #定义方法,当前里程
    def update_odometer(self,mileage):
        self.odometer_reading = int(mileage)
    #定义方法,增加的里程
    def increment_odometer(self,miles):
        self.odometer_reading += int(miles)
    #定义方法,打印里程
    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles on it.")
        
my_useed_car = Car('Audi','A4',2014)
#用户输入购买时里程
my_useed_car.update_odometer(input("how miles when you buy it?"))
my_useed_car.read_odometer()
#用户输入增加的里程
my_useed_car.increment_odometer(input("how miles you drinvee?"))
my_useed_car.read_odometer()

out:how miles when you buy it?50
this car has 50 miles on it.
how miles you drinvee?30
this car has 80 miles on it.

 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 = str(self.year)+" "+self.make+" "+self.model
        return long_name.title()
    #定义方法,当前里程
    def update_odometer(self,mileage):
        self.odometer_reading = int(mileage)
    #定义方法,增加的里程
    def increment_odometer(self,miles):
        self.odometer_reading += int(miles)
    #定义方法,打印里程
    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles on it.")
    def fill_gas_tank(self,gas_tank=0.8):
        self.gas_tank = gas_tank
 

#将电车ElectricCar的电池属性单独拿出来,避免过长
class Battery():
    #为类Battery添加新属性battery_size并设置默认值70
    def __init__(self,battery_size=70):
        self.battery_size=battery_size
    
    def describe_battery(self):
        print("The car has a "+str(self.battery_size)+" -kwh battery.")


#以Car为父类写子类ElectricCar,父类必须在当前文件中,且位于子类前
class ElectricCar(Car):
    def __init__(self,make,model,year):
        #super()是一类特殊的函数,将父类与子类关联起来
        super().__init__(make,model,year)
        #实例化Battery类,作为ElectricCar类的属性
        self.battery = Battery()
        #重写父类,与父类同名,不再关注父类,只关注子类
        #让子类继承父类的精华,剔除糟粕
        def fill_gas_tank():
            print("this car doesn't need a gas tank!")

my_tesla = ElectricCar('tesla','modelss',2016)
print(my_tesla.get_descriptive_name())
#通过ElectricCar类的battery属性调用Battery类的describe_battery方法
my_tesla.battery.describe_battery()

out:
2016 Tesla Modelss
The car has a 70 -kwh battery.

 python的学习还是要多以练习为主,想要练习python的同学,推荐可以去看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费。

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网求职之前,先上牛客,就业找工作一站解决。互联网IT技术/产品/运营/硬件/汽车机械制造/金融/财务管理/审计/银行/市场营销/地产/快消/管培生等等专业技能学习/备考/求职神器,在线进行企业校招实习笔试面试真题模拟考试练习,全面提升求职竞争力,找到好工作,拿到好offer。https://www.nowcoder.com/link/pc_csdncpt_ssdxjg_python

他们这个python的练习题,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了Python入门的全部知识点以及全部语法,通过知识点分类逐层递进,从Hello World开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。

牛客网(牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网)还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。

快点击下方链接学起来吧!

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山上的小酒馆

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值