代码之家  ›  专栏  ›  技术社区  ›  Igor Lubura

用一个变量使另一个变大,但使第一个变小

  •  0
  • Igor Lubura  · 技术社区  · 2 年前

    当我升级时,我想这样做,级别提高了,但点击次数减少了升级成本,但当我这样做时,会出现以下错误:

    line 19, in upgrade
        if clicks >= 10: UnboundLocalError: local variable 'clicks' referenced before assignment
    

    代码如下:

    def counter():
        global clicks
        for i in range(0, level):
            clicks += 1
        score.config(text="Score: " + str(clicks))
    
    def upgrade():
        global level
        if clicks >= 10:
            level += 1
            clicks -= 10
        levelLabel.config(text="Upgrade: " + str(level))
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   FLAK-ZOSO    2 年前

    你看到了吗 global clicks 在第一个函数的开头?你必须在另一个函数中也这样做, 前提是 A. clicks 变量存在于 global 范围


    global x
    
    def foo():
        x = 42
    
    def bar():
        global x
        x = 42
    
    x = 69
    foo()
    print(x) # 69
    bar()
    print(x) # 42