Python函数调用作为返回值作用域

2024-03-28 23:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

def biggest(aDict):
    if aDict.values() == []  :
        return None

    lengths =[]
    for e in aDict:
        lengths.append(len(aDict[e]))

    return max(lenghts)

biggest({'U': []})或任何其他操作都会产生错误:

^{pr2}$

lenghts是在我的函数中定义的,你能帮我吗?在


Tags: innoneforlenreturnifdef错误
3条回答

因为你有return max(lenghts),你的变量叫做lengths?在

只是拼写错误。在

lengths和{}不同。在

Python解释器在封闭范围内寻找变量(当它找不到本地变量时),直到它到达全局范围。在

找不到长度-由于打字错误,它应该是长度-它开始在全局范围内查找它。如果找不到它,它报告在全局范围内找不到它,这意味着它在局部范围内也找不到它。在

这里有一个更紧凑、更不容易出错(拼写错误的变量更少)的变体:

def biggest(aDict):
    if not aDict:
        return None
    return max(len(val) for val in aDict.values())

相关问题 更多 >