【发布时间】:2018-12-24 11:43:46
【问题描述】:
我试图弄清楚如何将函数的结果传递给同一脚本中的另一个函数。我已经测试了 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)
【问题讨论】:
-
你需要创建 UsrDict 变量:UsrDict = CreateDict('Book1.csv')
-
您似乎对
return的工作原理有一个基本的误解。它不会导致返回的变量在调用范围内自动变为可见。您需要对返回的值进行 do 操作(例如 -- 将其分配给变量)。您的代码只是丢弃了该返回值,因此CreateDict('Book1.csv')完全没有效果。
标签: python python-3.x function parameter-passing nameerror