Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.6-写入随机变量_Python_Variables - Fatal编程技术网

Python 3.6-写入随机变量

Python 3.6-写入随机变量,python,variables,Python,Variables,首先,为标题道歉,我想不出更好的了。我想做的是能够减少代码中if语句的数量。 这是我的密码: if var is "forwardThrustButton": global forwardThrustButton forwardThrustButton = res elif var is "backThrustButton": global backThrustButton backThrustButton = res elif var is "leftRotat

首先,为标题道歉,我想不出更好的了。我想做的是能够减少代码中if语句的数量。 这是我的密码:

if var is "forwardThrustButton":
    global forwardThrustButton
    forwardThrustButton = res
elif var is "backThrustButton":
    global backThrustButton
    backThrustButton = res
elif var is "leftRotateButton":
    global leftRotateButton
    leftRotateButton = res
elif var is "rightRotateButton":
    global rightRotateButton
    rightRotateButton = res
elif var is "basicShootButton":
    global basicShootButton
    basicShootButton = res
elif var is "specialShootButton":
    global specialShootButton
    specialShootButton = res
elif var is "bombShootButton":
    global bombShootButton
    bombShootButton = res

正如你所看到的,我这里有很多if语句,使用我放入函数中的字符串,并检查该字符串是什么。这个代码有效。我想做的是能够将变量名传递到函数中,只需说
var=res
。提前谢谢。

如果你有一本包含所有这些按钮值的字典,那么你可以轻松地说

buttons["leftRotateButton"] = res
这也会清理你的代码

buttons[var] = res

如果你有一个包含所有这些按钮值的字典,那么你可以很容易地说

buttons["leftRotateButton"] = res
这也会清理你的代码

buttons[var] = res
您可以尝试:

globals()[var] = res

取决于作用域上下文。但是这很难看,最好使用字典。

你可以试试:

globals()[var] = res


取决于作用域上下文。但是这很难看,最好使用字典。

首先,使用
=
而不是
is
is
是一种身份测试,你基本上是在检查
var
是否是
“ForwardPurshButton”
,同样的
str
实例。此检查的结果取决于特定Python版本的字符串interning实现。您可以查看以获取有关该主题的更多信息。

除此之外,您可以保留一个
dict
,其中所有可能的按钮名称都作为键,按钮作为值,如前所述,或者使用
exec(“全局”+var+;“+var+”=res”)
,尽管后者非常难看(但可以完成任务)。

首先,使用
=
而不是
is
is
是一种身份测试,您基本上是在检查
var
是否是
的“ForwardPurstButton”
,这与
str
实例非常相似。此检查的结果取决于特定Python版本的字符串interning实现。您可以查看以获取有关该主题的更多信息。

除此之外,您可以保留一个
dict
,其中所有可能的按钮名称都作为键,按钮作为值,如前所述,或者使用
exec(“全局”+var+“;“+var+”=res”)
,尽管后者相当难看(但可以完成任务)。

不要使用动态变量,使用字典。你能解释一下为什么你需要一个独立的变量取决于另一个变量吗?这种方法导致的问题是,您永远不知道在某个时间点存在哪些变量。As@juanpa.arrivillaga已经说过:使用字典。请看这里:将字符串与
is
进行比较是个坏主意:不要使用动态变量,请使用字典。您能解释一下为什么需要根据另一个变量使用单独的变量吗?这种方法导致的问题是,您永远不知道在某个时间点存在哪些变量。As@juanpa.arrivillaga已经说过:使用字典。请看这里:将字符串与
is
进行比较是个坏主意: