微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试编写 21 点代码以获得乐趣,但在在线赋值之前引用了此错误局部变量“first_hit”:32

如何解决我正在尝试编写 21 点代码以获得乐趣,但在在线赋值之前引用了此错误局部变量“first_hit”:32

我在 codesters/python 中编码,这是我的学校教我的,我试图在点击按钮中编码。我最初在没有 if 语句的情况下使用它,但我意识到我可能需要点击 2 次我尝试了这个,我收到错误消息“局部变量'first_hit'在行赋值之前引用:32” 如果 first_hit == True:

当我第一次点击点击按钮时会发生这种情况

first_hit = True
def click(hit_button):
    if first_hit == True:
        player3 = random.choice(cards)
        player3disp = codesters.display(player3,50,-150)
        player_total = player1 + player2 + player3
        playertotaldisp.update(player_total)
        first_hit = False
        stage.wait(1)
    elif first_hit == False:
        player4 = random.choice(cards)
        player4disp = codesters.display(player4,150,-150)
        player_total = player1 + player2 + player3 + player4
        playertotaldisp.update(player_total)
    
hit_button.event_click(click)

解决方法

通常一个变量是局部变量,这意味着一旦你进入一个新的作用域(在这种情况下你的函数)Python 不会“看到”这个变量。

为了使您的变量可从所有范围访问,您在第一次引用之前使用 global first_hit

因为当您使用全局变量时,您经常会开始遇到为变量寻找新名称的问题,所以将相互引用的东西放在一个类中通常是个好主意。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?