用python如何实现啊?

用面向对象的知识编写一段程序,程序中需含有如下内容:一个父类,以自己所在省份命名(例如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()

大致按照要求来写了一下,可能有些地方还有问题,如果有的话,你留言一下,我再帮你改吧

追问

你好,请问这个是什么原因呢

温馨提示:答案为网友推荐,仅供参考
相似回答