面向对象的使用方法 -类的使用
类是抽象的,主要是 类名(大驼峰命名,首字母大写),属性,方法
对象是实体,是根据类的属性和方法创造出来的一个具体的东西
列如
# 定义一个类
class Demo:
"""定义类里面的方法的使用"""
# init是python里面内置的函数的初始化函数,刚创建这个类就会窒息init下面的语句
# name是文字参数的传递,由我们传递进去
def __init__(self, name):
self.name = name
# eat 是我们自己定义的属性的使用
def eat(self):
print("%s不爱吃饭" % self.name)
def drink(self):
print("%s不爱喝饮料" % self.name)
xiaoming = Demo('小黑')
Demo.eat(xiaoming)
print(xiaoming)
以下是对士兵对枪类型的定义和对象创建的使用
class Gun:
def __init__(self, model):
# 枪的类型,和枪的子弹数量
self.model = model
self.bullet_count = 0
# 给枪加子弹
def add_bullet(self, count):
self.bullet_count += count
def shoot(self):
# 1.判断子弹数量
if self.bullet_count <= 0:
print("[%s]没有子弹了" % self.model)
return
# 2.发射子弹
self.bullet_count -= 1
# 3.提示发射信息
print("[%s]突突突突突突。。。。[%d]" % (self.model, self.bullet_count))
class Soldier:
def __init__(self, name):
# 新兵的名字,枪的名字
self.name = name
self.gun = None
def fire(self):
if self.gun is None:
print("%s还没有枪" % self.name)
print("%s 冲啊" % self.name)
self.gun.add_bullet(40)
self.gun.shoot()
# 创建枪对象
ak47 = Gun("ak47")
# 创建小明,创建后打印的时候对象是小明
xiaoming = Soldier("小明")
xiaoming.gun = ak47
xiaoming.fire()
print(xiaoming.gun)
子类调用父类的方法
定义一个父类
class Father:
def init(self, age):
self.age = age
print(“age:%d” % self.age)
def getage(self):
return self.age
定义一个子类,子类在调用父类的时候,相当于使用了父类使用的定义的函数,如果子类定义重写,则使用子类里面定义的
class Son(Father):
def getage(self):
return self.age
son = Son(18)
print(son.getage())