面向对象小案例

1.往房子里放家具的小案例

class Hourse:

def __init__(self,name,mianji):

self.name = name                       

self.mianji = mianji

def __str__(self):

return '家具是%s,面积是%.2f'%(self.name,self.mianji)

bed =Hourse('床',10)

computer = Hourse('电脑',15)

class Huxing:

def __init__(self,huxing,zmj):

self.huxing = huxing                    

self.zmj = zmj                                         #这里有四个参数,但是我们只需要定义二个,因为剩余面积等于总面积,而self。yjjj是个空列表

self.symj = zmj                                       #__init__里只需要定义需要传参数的东西

self.yjjj =[]

def __str__(self):

return '户型是%s,总面积%.2f,剩余面积%.2f,要加家具%s'%(self.huxing,self.zmj,self.symj,self.yjjj)

def add(self,item):             #这里的item的作用是用来调用Hourse里的属性用的,但是我们需要先把bed传入add中否则调用不了

print('要添加%s'%item)

if item.mianji >self.symj:

print('太大,扔掉')

self.symj -= item.mianji

self.yjjj.append(item.name)

h = Huxing('三室一厅',100)

h.add(bed)

print(h)


结果:要添加家具是床,面积是10.00

户型是三室一厅,总面积100.00,剩余面积90.00,要加家具['床']



2.士兵突击小案例

class Qiang:

def __init__(self,xh):

self.xh = xh

self.zidan =0

    def addzidan(self,zidan):

self.zidan += zidan

def kaihuo(self):

self.zidan -=10

        print('%s突突突,%d'%(self.xh,self.zidan))

ak = Qiang('ak47')

class Ren:

def __init__(self,name):

self.name = name

self.qiang =None

    def wuqi(self):

if self.qiang ==None:

print('给老子拿把抢')

print('我%s要打10个'%self.name)

self.qiang.addzidan(10000)

self.qiang.kaihuo()

a = Ren('士兵76')

a.qiang = ak  #一个对象的属性可以是另一个对象 我们这里用a.qiang = ak,然后让Ren里的qiang方法来调用Qiang里的属性

a.wuqi()

结果:我士兵76要打10个

ak47突突突,9990

你可能感兴趣的:(面向对象小案例)