多语言展示
当前在线:343今日阅读:26今日分享:39

PYTHON实现一个类属性由另一个类创建的对象组成

PYTHON实现一个类属性由另一个类创建的对象组成
工具/原料

python3.7

方法/步骤
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 = waterGunprint(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 = waterGunxiaoming.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) #我们测试一下不赋值的情况。

注意事项

注意两个类之前的关系

推荐信息