无法在函数内定义具有类型的全局变量

问题描述 投票:0回答:1

我正在尝试创建一个重新加载全球银行的函数:

import json

type Bank = dict[str, dict[str: int | float]]

def get_ball() -> None:
    """
    _summary_
    Reloads the bank dict from the bank.json file
    """
    global bank
    with open("bank.json", "r") as f:
        bank: Bank = json.load(f)  # Error
        # bank = json.load(f)      # Works fine
    print(bank)

get_ball()
print(bank)

但它引发了一个语法错误:带注释的名称“bank”不能是全局的

当它没有指定类型时,它可以正常工作(请参阅注释掉的行)。我必须做什么?

python types syntax-error global-variables
1个回答
0
投票

您声明了银行类型,但没有声明变量。因为它不存在,所以您无法将其作为全局变量访问。您可以删除全局标签并将其用作该函数的局部变量并返回它。

或者,在开始时初始化您的银行变量,如下所示

bank = {}
© www.soinside.com 2019 - 2024. All rights reserved.