我有一个从文件加载值的功能,但无法正常工作

时间:2019-11-20 16:28:20

标签: python variables

gold = 0
def load_gold():
  e = open('gold.txt', 'r')
  ee = e.readline()
  gold = int(ee)
load_gold()

在文件中,唯一的信息是

-1

保存功能可以正常工作,但是每当我重新加载并运行程序时,它都会将gold重置为0。

2 个答案:

答案 0 :(得分:1)

问题是您的gold变量的作用域

在代码的第一行中,声明一个名为gold的变量。此变量的作用域是全局的。您可以在gold函数中创建一个新的独立变量,也称为load_gold。此变量的作用域仅在函数内部。它没有与该单独的全局gold变量交互,并且在函数完成运行后将其销毁。

以下代码将实现您的目标:

gold = 0
def load_gold(gold):
  e = open('gold.txt', 'r')
  ee = e.readline()
  gold = int(ee)
  return gold
gold = load_gold()

进一步阅读:Global and local scope of Python variables

答案 1 :(得分:0)

gold被声明为全局变量,因此,如果要在方法中进行更改,则需要声明该方法为全局变量。像这样:

gold = 0
def load_gold():
    global gold
    e = open('gold.txt', 'r')
    ee = e.readline()
    gold = int(ee)
load_gold()