Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使变量工作(Python)?_Python - Fatal编程技术网

如何使变量工作(Python)?

如何使变量工作(Python)?,python,Python,我一直在尝试让一个变量在学校的游戏项目中工作。Pycharm一直拒绝将其识别为变量。我的密码有错误吗?它已经困扰我一段时间了 它说: 从外部范围隐藏名称“gold” 未使用局部变量“gold”值 代码: 您试图在函数中编辑全局变量gold,但由于您没有告诉函数使用全局版本,因此在执行gold=1时,Python会为该函数定义一个同名的新变量gold,也称为阴影 您需要将global gold放在要使用该变量的函数的第一行 更多信息。警告是关于在内部作用域中重复使用这些名称所带来的潜在危险。它会使

我一直在尝试让一个变量在学校的游戏项目中工作。Pycharm一直拒绝将其识别为变量。我的密码有错误吗?它已经困扰我一段时间了

它说:

从外部范围隐藏名称“gold”
未使用局部变量“gold”值

代码:


您试图在函数中编辑全局变量
gold
,但由于您没有告诉函数使用全局版本,因此在执行
gold=1
时,Python会为该函数定义一个同名的新变量
gold
,也称为阴影

您需要将
global gold
放在要使用该变量的函数的第一行


更多信息。

警告是关于在内部作用域中重复使用这些名称所带来的潜在危险。它会使你错过一个错误。您应该进行更好的命名、引入类、使用全局变量等。

您试图在方法内部修改全局变量
gold
。为此,您需要使用以下语句:

gold = 0
def my_func():
   global gold
   gold = 1

这不是最佳做法。考虑使用自定义对象或DICT来处理游戏状态。

谢谢大家!我以前不知道阴影以及局部变量和全局变量之间的区别。我已经修好了密码,它很有魅力。也许我需要改变我的编码习惯:)这是我第一次使用StackOverflow,我得到的帮助真的让我开心。
gold = 0
def my_func():
   global gold
   gold = 1