如何使变量工作(Python)?
我一直在尝试让一个变量在学校的游戏项目中工作。Pycharm一直拒绝将其识别为变量。我的密码有错误吗?它已经困扰我一段时间了 它说: 从外部范围隐藏名称“gold”如何使变量工作(Python)?,python,Python,我一直在尝试让一个变量在学校的游戏项目中工作。Pycharm一直拒绝将其识别为变量。我的密码有错误吗?它已经困扰我一段时间了 它说: 从外部范围隐藏名称“gold” 未使用局部变量“gold”值 代码: 您试图在函数中编辑全局变量gold,但由于您没有告诉函数使用全局版本,因此在执行gold=1时,Python会为该函数定义一个同名的新变量gold,也称为阴影 您需要将global 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