NameError: name '' is not defined - Passing function return as input to another function

NameError: name '' is not defined - Passing function return as input to another function

我想弄清楚如何将一个函数的结果传递给同一脚本中的另一个函数。我已经测试了 CreateDict 函数并且它有效。我无法将结果用作 CreateHumanUsrNameDict 的输入 我收到的以下错误是 CreateHumanUsrNameDict(UsrDict) NameError : 名称 'UsrDict' 不是 已定义

import csv
def CreateDict(filename):
    UsrDict = {}
    with open(filename) as csvfile:
        readCSV = csv.reader(csvfile, delimiter=':')
        for row in readCSV:
            UsrDict[row[0]]=row[1]
        return UsrDict


def CreateHumanUsrNameDict(UsrDict):
    HumanUsrDict={}
    for k, v in HumanUsrDict.items():
        if v == len(4):
            HumanUsrDict[k:v]
        print(HumanUsrDict)

if __name__=='__main__':
    CreateDict('Book1.csv')
    CreateHumanUsrNameDict(UsrDict)

调用CreateDict时需要将return值赋给变量UsrDict。试试这个:

import csv
def CreateDict(filename):
    UsrDict = {}
    with open(filename) as csvfile:
        readCSV = csv.reader(csvfile, delimiter=':')
        for row in readCSV:
            UsrDict[row[0]]=row[1]
        return UsrDict


def CreateHumanUsrNameDict(UsrDict):
    HumanUsrDict={}
    for k, v in HumanUsrDict.items():
        if v == len(4):
            HumanUsrDict[k:v]
        print(HumanUsrDict)

if __name__=='__main__':
    UsrDict = CreateDict('Book1.csv')
    CreateHumanUsrNameDict(UsrDict)