有没有在我的本地函数的某一点使用全局变量的方法吗?

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

要明白我的问题,这里是在利用全球关键词代码样片 -

def span():
    global eggs
    eggs='Hello'
    print(eggs) # Prints 99


eggs=99
span()

这里是我的实验 -

def span():
    eggs='Hello'
    print(eggs)
    global eggs 
    print(eggs)

eggs=99
span()

这导致了一个错误 -

名蛋之前声明使用。

我的目的是要拿出一个办法我在程序的某个点使用全局值,以及剩下的时间局部变量保持在函数内部它的价值。

请建议的方法解决这个问题。

python-3.7
2个回答
2
投票

您可以使用globals()这是全球性的变量的字典(而不是locals()):

def span():
    eggs='Hello'
    print(eggs)
    eggs = globals()["eggs"]
    print(eggs)

eggs=99
span()

# Outputs:
# Hello
# 99

0
投票

其实,你的第一个代码工作正常:)

看看小提琴:

https://repl.it/@WaskaChaduneli/Stackoverflow54529122

© www.soinside.com 2019 - 2024. All rights reserved.