PYTHON实现一个类属性由另一个类创建的对象组成
1、小明喜欢玩水Q玩具
小明很喜欢用这个玩具来喷水王科
玩具能够喷水
玩具也能够装水。
比如说我们有这个案例需要开发。

2、class Toy:
def __init__(self):
pass
#首先我们要先定义类,因为等下可以用于小明那边。

3、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
#进行属性的初始化设置,需要名字和水容量,容量先设置为0,因为是新的玩具。

4、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
def load(self, add_water):
self.water += add_water
#玩具可以装水,水的多少让外部参数进行设置。

5、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
def load(self, add_water):
self.water += add_water
def shoot(self):
if self.water <= 0:
print("out of water!")
包海裹 return
else:
self.water -= 1
print("shoot the water!")
print("The rest water is %d." %(self.water))
#定义一下喷水的方法,如果没水了,就直接返回不运行了。

6、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
def load(self, add_water):
self.water += add_water
def shoot(self):
if self.water <= 0:
print("out of water!")
return
else:
处墨 self.water -= 1
print("shoot the water!")
print("The rest water is %d." %(self.water))
waterGun = Toy("waterGun")
waterGun.load(5)
waterGun.shoot()
#这个时候可以开始定义对象了,并且看看方法能不能执行。

7、class Kid:
def __init__(self, name):
self.name = name
self.toy = None
xiaoming = Kid("xiaoming")
print(xiaoming.toy)
#如果不知道设置什么玩具给他,所以可以先设置一个None

8、class Kid:
def __init__(self, name):
self.name = name
self.toy = None
xiaoming = Kid("xiaoming")
xiaoming.toy = waterGun
print(xiaoming.toy)
#这个时候可以用另外一个类赋值给这个对象的属性。

9、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
def load(self, add_water):
self.water += add_water
def shoot(self):
if self.water <= 0:
print("out of water!")
return
else:
self.water -= 1
print("shoot the water!")
print("The rest water is %d." %(self.water))
class Kid:
def __init__(self, name):
self.name = name
self.toy = None
def fire(self):
if self.toy == None:
print("%s No toy to play!" %(self.name))
return
self.toy.load(10)
self.toy.shoot()
waterGun = Toy("waterGun")
xiaoming = Kid("xiaoming")
xiaoming.toy = waterGun
xiaoming.fire()
print(xiaoming.toy)
#这个时候因为xiaoming.toy这个属性是waterGun这个对象,所以xiaoming.toy可以调用waterGun里面的方法。

10、class Toy:
def __init__(self, name):
self.name = name
self.water = 0
def load(self, add_water):
self.water += add_water
def shoot(self):
if self.water <= 0:
print("out of water!")
return
else:
self.water -= 1
print("shoot the water!")
print("The rest water is %d." %(self.water))
class Kid:
def __init__(self, name):
self.name = name
self.toy = None
def fire(self):
if self.toy is None:
print("%s No toy to play!" %(self.name))
return
self.toy.load(10)
self.toy.shoot()
waterGun = Toy("waterGun")
xiaoming = Kid("xiaoming")
xiaoming.fire()
print(xiaoming.toy)
#我们测试一下不赋值的情况。
