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、clas衡痕贤伎s 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 = waterGunprint(xiaoming.toy)#这个时候可以用另外一个类赋值给这个对象的属性。
9、clas衡痕贤伎s 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 = waterGunxiaoming.fire()print(xiaoming.toy)#这个时候因为xiaoming.toy这个属性是waterGun这个对象,所以xiaoming.toy可以调用waterGun里面的方法。
10、clas衡痕贤伎s 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)#我们测试一下不赋值的情况。