首页 > 解决方案 > 创建了一个列表,但得到 errorTypeError: 'NoneType' 类型的对象在 python 中没有 len()

问题描述

我收到 TypeError:当我尝试运行 main.py 时,'NoneType' 类型的对象没有 len()。变量 blobs 在 blob.py 中初始化为 None,但后来在 adamEve() 中定义为列表。当我尝试运行 main.py 时,我在饥饿管理()的 for 循环中收到此错误。感谢您的帮助。

斑点.py

from random import seed
from random import randint

seed(2)
blobs = None
class Blob:
    def __init__(self):
        self.name = randint (0, 1000)
        self.gender = randint(0, 1)
        self.age = 0
        self.ate = False
        newSeed = self.name*self.gender
        seed(newSeed)
def adamEve():
    global blobs
    blobs = [Blob() for _ in range(2)]
    print(blobs)
    blobs[0].gender = 0
    blobs[1].gender = 1
def debug():
    for x in range(len(blobs)):
        print("Name: ", blobs[x-1].name, ", ", "Gender:", blobs[x-1].gender)

食物.py

food = 0

def foodSupply(amount):
    global food
    food = amount

饥饿管理.py

from Blob import *
from Food import *

def hungerManage():
    global blobs
    global food
    for x in range(len(blobs)):
        if food > 0:
            blob[x].ate = True
            food = food - 1

        if food <= 0:
            blob[x].ate = False

    for x in range(len(blobs)):
        if blob[x].ate == False:
            del blob[x]

主文件

from Blob import *
from Food import *
from hungerManage import *
adamEve()
foodSupply(50)
debug()
hungerManage()

标签: pythonlistnonetype

解决方案


推荐阅读