我对python相当陌生,我试图在函数中更改变量的值
为了更容易理解,我将第一个文件命名为File1,第二个文件命名为File2,我在File1中为变量赋值,并在File2中定义了一个函数,当某个事件发生时,该函数应该更改变量的值,但它永远不会更改,相反,变量在函数中变灰。我是不是做错了什么,或者说我有可能做错什么?
Edit:下面是一个代码示例:
File1:
global winner
winner = 0
player_1 = 0
player_2 = 0
File2:
def determine_winner(winner):
if certain_event:
winner = 1
else:
winner = 2
def winner_score(winner, player_1, player_2):
if winner == 1:
player_1 += 1
elif winner == 2:
player_2 += 1
这是我的代码的简化版本,赢家永远不会改变值
2条答案
按热度按时间yr9zkbsy1#
如果它是灰色的,这通常意味着它没有被使用。您正在更改/分配代码中其他地方未使用的变量的值。由于某种原因,你在这个函数中创建了一个局部变量,而你实际上并没有引用你想要的全局变量。
我建议你看看这个链接,看看你想做什么:https://www.geeksforgeeks.org/how-to-import-variables-from-another-file-in-python/
尝试在修改它的函数中返回赢家的新值:
并确保当你调用这个函数时,它看起来像这样:
或者,你可以简单地删除所有参数,并直接在函数中修改全局变量:
这里发生的是你正确地将全局变量作为参数传入,问题是当你将变量传入函数时,它只是传入值,而不是指向该数据的实际指针。因此,当你在函数中改变赢家变量时,你就是在改变局部winner变量的值。对于全局赢家变量,你需要返回新的值,或者只是从函数内部引用全局变量,而不是将其作为参数传递给函数。
希望这对你有帮助!
x6yk4ghg2#
它是灰色的,因为在两个文件之间没有对该变量
winner
的引用。使用类来完成这个操作,并像这样命名你的文件:
File1.py
变为Player.py
File2.py
变为Game.py
下面是伪代码:
Player.py
Game.py:
我的意思是,我不知道你的目标是什么(你可以做其他的事情来使这种方式更好),但一般来说,你应该与类一起工作。