python类的继承,白月黑羽笔记01

# def pressHorn():
#     print('嘟嘟嘟嘟嘟~~~~~~~~~~')
#
#
# benzCar = {
#     'brand' :  '奔驰',
#     'country' : '德国',
#     'price' : 300000,
#     'pressHorn' : pressHorn   #字典对象的值可以是一个函数对象
# }
#
# # 我可以这样执行它的行为
# benzCar['pressHorn']()


# class BenzCar:
#     brand = '奔驰'
#     country = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟嘟~~~~~')
#
# # 要产生一个类的实例对象,只需要在类名后面加括号,就可以了,就会返回一个该类的实例对象
# # car1 = BenzCar()
#
# # car1变量就对应了一个BenzCar的实例对象,具有BenzCar类的一切属性和方法.
#
# car1 = BenzCar()
# print(car1.brand)
# car1.pressHorn()



# class BenzCar:
#     brand = '奔驰'
#     country = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟嘟~~~~')
#
#     def __init__(self):
#         self.color = 'red'  #颜色
#         self.engineSN = '8718272882'   #发动机编号
#
# car1 = BenzCar()
# print(car1.engineSN)



# class BenzCar:
#     brand = 'BenzCar'
#     country = '德国'
#
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟嘟~~~~')
#
#     def __init__(self, color, esn):
#         self.color = color  # 颜色
#         self.engineSN = esn  #发动机编号
#
# car1 = BenzCar('green', 'sn1231241')
# car2 = BenzCar('black', 'sn43234123')
#
# print(car1.brand)
# print(car1.country)
# print(car1.color)
# print(car1.engineSN)


# class BenzCar:
#     brand = '奔驰'
#     country = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟~~~')
#
#     def __init__(self, color, enginSN):
#         self.color = color
#         self.engineSN = enginSN
#
#     def changeColor(self, newColor):
#         self.color = newColor
#
# # self是car1, black是newColor
# car1 = BenzCar('red', '2412313113')
# car1.changeColor('black')
#
# print(car1.color)
# """类的静态方法需要在方法定义上面加上@staticmethod的修饰.
# 而类的实例方法不需要任何修饰.
# 通常类的实例方法,都是需要访问类的实例属性的.包括:创建\修改\删除类的实例属性
# 比如__init__初始化方法,就是一个实例发给发,它通常要创建一些实例属性
# 而pressHorn方法是类的静态方法,静态方法是不能访问实例属性的"""


# class BenzCar:
#     brand = '奔驰'
#     counry = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟~~~~')
#
#     def __init__(self, color , engineSN):
#         self.color = color
#         self.engineSN = engineSN
#
#     def changeColor(self, newColor):
#         self.color = newColor
#         print(self.color)
#
#
# car1 = BenzCar('green', '123123123')
# car2 = BenzCar('green', '123123123')
#
# if car1 == car2:
#     print('二者相等')
# else:
#     print('二者不相等')
#
#
# print(car1.brand)
# print(car1.counry)
# car1.changeColor('blue')
#
#
# print(car2.brand)
# print(car2.counry)
# car2.pressHorn()




# class BenzCar:
#     brand = '奔驰'
#     counry = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟~~~~')
#
#     def __init__(self, color , engineSN):
#         self.color = color
#         self.engineSN = engineSN
#
#     def changeColor(self, newColor):
#         self.color = newColor
#         print(self.color)
#
# # 一个子类在继承父类的一切特性的基础上,可以有自己的属性和方法
# class Benz2018(BenzCar):
#     price = 880000
#     model = 'Benz2018'

## 特别注意,子类的初始化方法里面,需要调用父类的初始化方法  __init__
# 否则解释器自己就不会执行父类的初始化方法
#  而且要传入相应的参数,像上面那样,然后可以加上自己特有的初始化代码
#     def __init__(self, color, engineSN, weight):
#         #先调用父类的初始化方法
#         BenzCar.__init__(self, color, engineSN)
#         self.weight = weight
#         self.oilweight = 0 # 油的重量
#
#         #加油
#     def fillOil(self, oilAdded):
#         self.oilweight += oilAdded
#         self.weight += oilAdded
#
# class Benz2016(BenzCar):
#     pass   #表示与父类的属性与方法一样
#
# car1 = Benz2018('pink', '3661263', 1800)
# car1.fillOil(60)
# print(car1.weight)




# class BenzCar:
#     brand = '奔驰'
#     counry = '德国'
#
#     @staticmethod
#     def pressHorn():
#         print('嘟嘟~~~~')
#
#     def __init__(self, color , engineSN):
#         self.color = color
#         self.engineSN = engineSN
#
#     def changeColor(self, newColor):
#         self.color = newColor
#         print(self.color)
#
# class BenzCar2019(BenzCar):
#     # 除了直接用父类的名字BenzCar,另外一种使用父类的方法,就是使用函数super()
#     def __init__(self, color, engineSN, weight):
#         # 同样是调用父类的初始化方法
#          super().__init__(color, engineSN)  # 这样使用的时候,方法参数中不需要加上self
#          self.weight = weight
#          self.oilweight = 0


# 子类拥有其父类一切的属性和方法,也包括父类的父类的一切属性和方法,相当于孙子也拥有爷爷的所有属性和方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值