Python面向对象编程

本文内容参考Eric Metthes编写的《python编程——从入门到实践》

前情提要:
本文内容是书中的代码,具体解释可以参考那本书第九章,编者只是将代码总结起来供以后复习使用,也欢迎小伙伴们学习完书的第九章再来看看代码,作为复习使用~

面向对象编程

  • 类的基本结构
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() 
 
my_new_car = Car('audi', 'a4', 2016) 
print(my_new_car.get_descriptive_name())
  • 继承
class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_describe_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 updat_odometer(self,mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading += mileage
        else:
            print("You can't roll back an odometer!")

    def increase_odometer(self,miles):
        self.odometer_reading += miles

class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)  #super()是一个特殊函数,可实现父类与子类的连接

my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_describe_name())
my_tesla.updat_odometer(1600)
my_tesla.increase_odometer(20)
print(my_tesla.read_odometer())
  • 给子类定义属性与方法
class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_describe_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 updat_odometer(self,mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading += mileage
        else:
            print("You can't roll back an odometer!")

    def increase_odometer(self,miles):
        self.odometer_reading += miles

class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)  #super()是一个特殊函数,可实现父类与子类的连接
        self.battery_size = 70

    def describe(self):
        print("This car has a "+ str(self.battery_size)+'-kWh battery.')

my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_describe_name())
my_tesla.describe()
  • 将实例用作属性
class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_describe_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 updat_odometer(self,mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading += mileage
        else:
            print("You can't roll back an odometer!")

    def increase_odometer(self,miles):
        self.odometer_reading += miles

class Battery():
    def __init__(self,battery_size = 70):
        """初始化电瓶的属性"""
        self.battery_size = battery_size

    def describe_bettery(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)  #super()是一个特殊函数,可实现父类与子类的连接
        self.battery = Battery()   #属性
my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_describe_name())
my_tesla.battery.describe_bettery()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值