如何在python中使用名称中的变量

Sau*_*ava -7 python

我正在设计一个python游戏.假设我有5个级别和一个变量m.如果我在1级,如果我在2级,m将是101,m将是102,依此类推

现在,我还有一个所有级别的最佳得分变量,比如b_101,b_102,b_103,b_104,b_105.最初都设为0.

现在玩的时候我有一个变量current_score.我想在满足某些条件时更新最佳分数.

if(condition met):
   global m
   update_score(m)

def update_score(m):
    if(m==101):
        b_101=current_score
    elif(m==102):
        b_102=current_score
    elif(m==103):
        b_103=current_score
    elif(m==104):
        b_104=current_score
    elif(m==105):
        b_105=current_score
Run Code Online (Sandbox Code Playgroud)

实际上,我可能有100个级别,我希望我的update_score函数很小,如果没有其他行,则不要写100.

我希望它是这样的:

def update_score(m):
    b_{m}=current_score
Run Code Online (Sandbox Code Playgroud)

我知道上面的代码不正确,但我想要基于m更新b_xxx.它是否可能在python中.

在perl中,它可以完成

${'b_'.$m} = $current_score;
Run Code Online (Sandbox Code Playgroud)

Mor*_*app 8

只需使用字典.

def update_score(m, score, scores = {}):
    scores[m] = score
Run Code Online (Sandbox Code Playgroud)

  • 哦,它可以通过使用`exec`以类似于Perl方式的方式在Python中完成.但是,创建充满各种变量的代码并不是一个好主意,尤其是当您使用动态变量创建来访问它们时,无论您正在编写哪种语言,都是如此.组织起来更好.使用该语言提供的各种数据结构来处理您的数据. (5认同)
  • @ user3388005您的选择是,现在重写它,花一点时间来获得一个好的长期解决方案,或者继续编写错误的代码.由你决定. (3认同)