用面向对象的知识编写一段程序,程序中需含有如下内容:一个父类,以自己所在省份命名(例如Guangdong),两个以自己及周边所在的地级市命名的子类(例如Guangzhou、Foshan),该类继承自省份类,实例化为对象时使用地级市类,对象变量名为自己的姓名(例如Qinshihuang)。
现在你刚刚获得了1万元的风险投资基金,想象自己有如下功能:(1)自己与周边市的供应商联系,供应商是他所在地级市的一个实例化对象(例如Liubang),开始时他手里有100个商品,但一毛钱也没有,你每联系他一次,就会从他手里买走1件商品,同时付货款100元,(2)当你的库存积攒到4件时,开始销售该商品,每次卖1件,每件收10%的利润,买家是你楼上的邻居(他也是地级市的一个实例化对象,例如Hanxin)。你的买家比较挑剔,在每交易4次时,会以50%的几率退1件商品,退货后的商品以每件70元的价格返回给供应商(Liubang)。
from random import randint
class Shengfen(object):
def __init__(self, sname):
self.sname = sname
def shengfen(self):
print(self.sname)
class Dijishi(Shengfen):
def __init__(self, sname, dname):
Shengfen.__init__(self, sname)
self.dname = dname
self.money = 10000 #现有钱数
self.number = 0 #商品数量
self.jycs = 0 #交易次数
def attach_g(self): #联系供应商
self.money -= 100
self.number += 1
if self.number >= 4:
self.xiaoshou() #库存积攒到4件时,开始销售该商品
print("现有钱数:" + str(self.money))
print("现有商品数量:" + str(self.number))
def xiaoshou(self): #销售该商品
if self.jycs < 4: #交易次数小于4次,继续交易
self.money += 110
self.number -= 1
self.jycs += 1
else: #交易次数大于4次,又百分之50的几率退货
if randint(1,2) == 1: #用randint函数创建1/2概率
self.money += 110
self.number -= 1
else:
self.tuihuo()
def tuihuo(self):
self.money -= 30 #退货一件,相当于亏了30元
print("退货一件")
class Gebishi(Shengfen):
def __init__(self, sname, gname):
Shengfen.__init__(self, sname)
self.gname = gname
if __name__ == "__main__":
count = 9 #交易次数
Qinshihuang = Dijishi('Guangdong', 'Guangzhou')
Liubang = Gebishi('Guangdong', 'Foshan')
Hanxin = Gebishi('Guangdong', 'Foshan')
for i in range(count):
Qinshihuang.attach_g()
大致按照要求来写了一下,可能有些地方还有问题,如果有的话,你留言一下,我再帮你改吧
追问你好,请问这个是什么原因呢