Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:-=:';类别';和';int';_Python - Fatal编程技术网

Python TypeError:-=:';类别';和';int';

Python TypeError:-=:';类别';和';int';,python,Python,我有一个错误消息问题:TypeError:-=:“Workers”和“int”的操作数类型不受支持。。我知道消息说Workers不是int,但我不知道如何修复它 我的代码应该做什么:创建5个工人,从一个life force 100开始,我的工人的名字就是当前的life force。假设他们一次一个去工厂生产一个单位的产品,如果他们成功了,他们将失去10个单位的生命力,回到队列的后面,不得不在那里轮候。但如果发生事故,它们会失去100个单位的生命力,死亡,并从模拟中移除。只要工人还活着,模拟就应该

我有一个错误消息问题:
TypeError:-=:“Workers”和“int”的操作数类型不受支持。
。我知道消息说
Workers
不是
int
,但我不知道如何修复它

我的代码应该做什么:创建5个工人,从一个life force 100开始,我的工人的名字就是当前的life force。假设他们一次一个去工厂生产一个单位的产品,如果他们成功了,他们将失去10个单位的生命力,回到队列的后面,不得不在那里轮候。但如果发生事故,它们会失去100个单位的生命力,死亡,并从模拟中移除。只要工人还活着,模拟就应该运行,并在最后打印出已经生产了多少个产品单元

如果我删除
class worker:
并将
class Roads:
中的第一个
def
更改为:

class Roads:
    def __init__(self):
        self._workers_road = []
        for worker in range(5):
            self._workers_road.append(100)
然后它就可以正常工作了,但是我需要
类工作者:
从长远来看扩展我的代码,培养更多的工作者,并将他们添加到
类道路:
中的列表中

import random

class Workers:
    def __init__(self):
        self._worker = 100

    def get_worker(self):
        return self._worker

class Products:
    def __init__(self):
        self._product = True

    def get_product(self):
        return self._product

class Roads:
    def __init__(self):
        self._workers_road = []
        for worker in range(5):
            self._workers_road.append(Workers())

    def workers_left(self):
        if len(self._workers_road) == 0:
            return True

class Storage:
    def __init__(self):
        self._product_stock = []

    def add_product(self):
        self._product_stock.append(Products())

    def get_product_stock(self):
        return 'Storage: ' + str(len(self._product_stock))

class Plants:
    def __init__(self):
        self._plant_list = []
        self._plant_storage = Storage()
        self._road = Roads()

    def add_worker(self):
        self._plant_list.append(self._road._workers_road[0])
        self._road._workers_road.pop(0)

    def create_product(self):
        accident = random.randint(1,10)

        if accident < 5:
            self._plant_storage.add_product()
            self._plant_list[0] -= 10
        else:
            self._plant_list[0] -= 100

    def sub_worker(self):
        if self._plant_list[0] <= 0:
            self._plant_list.pop(0)
        else:
            self._road._workers_road.append(self._plant_list[0])
            self._plant_list.pop(0)

if __name__ == "__main__":
    a = Plants()
    while not a._road.workers_left():
        a.add_worker()
        a.create_product()
        a.sub_worker()
    print(a._plant_storage.get_product_stock())
随机导入
工人阶级:
定义初始化(自):
自工作人员=100
def get_工作人员(自我):
返回自我
类别产品:
定义初始化(自):
self.\u product=True
def get_产品(自身):
返回自己的产品
三级公路:
定义初始化(自):
赛尔夫。工人路=[]
对于范围(5)内的工人:
self.\u workers\u road.append(workers())
def工作人员左(自身):
如果len(自雇工人路)==0:
返回真值
类别存储:
定义初始化(自):
自身产品库存=[]
def添加_产品(自身):
self.\u product\u stock.append(Products())
def获取产品库存(自身):
返回“存储:”+str(len(自身产品库存))
类别植物:
定义初始化(自):
self._plant_list=[]
自身设备存储=存储()
自行车道=道路()
def添加_工作人员(自身):
self.\u plant\u list.append(self.\u road.\u workers\u road[0])
self._road._workers._road.pop(0)
def创建_产品(自我):
事故=random.randint(1,10)
如果事故小于5:
自身。\工厂\仓库。添加\产品()
自身设备清单[0]=10
其他:
自身设备清单[0]=100
def sub_工作人员(自身):

如果self.\u plant\u list[0]则表明您在错误的对象上操作。您可能需要更改此选项:

self._plant_list[0] -= 10
为此:

self._plant_list[0]._worker -= 10

对于代码中的
-=
的其他用法也一样。

您正在尝试从辅助对象中减去整数

self.\u工厂\u列表[0]。\u工人

这是否回答了您的问题?