【发布时间】:2014-05-13 18:16:15
【问题描述】:
我有一个 Python 问题。
假设我们有这个类:
class Class:
def __init__(self, arg1, arg2, arg3):
self.arg1 = arg1
self.arg2 = arg2
self.arg3 = arg3
*******这部分我不知道怎么编码**
def controls(self, instructions)
instructions[0] = instructions[1]
********************** ************
my_class = Class(arg1, arg2, arg3)
inputs = {"A":[self.arg1, value1],
"S":[self.arg2, value2],
"D":[self.arg3, value3]}
my_class.controls(inputs["A"])
所以字典(“输入”)映射键盘敲击。根据按下的键,我需要编辑my_class的一些属性。
我要做的是:将需要根据击键编辑的值传递给 def controls(self, instructions)。因此,例如,如果用户按下“A”,那么我想将 self.arg1 从它现在拥有的任何值更改为 value1。同样,如果他按“S”,我想将另一个属性编辑到另一个,等等。
如果我这样做:
print instructions
我得到了按键“A”:
[self.arg1, value1]
因此,例如,如果用户按下了“A”、“S”和“D”,一旦所有这些都在这里解决,my_class 应该是这样的:
my_class.arg1 = value1
my_class.arg2 = value2
my_class.arg3 = value3
我做了各种尝试,但没有一个能够真正改变 self.argX 的值,它们要么给我一个错误,要么没有完成任何有用的事情。
我目前正在做一堆 If/elif ,但这越来越长了。
所以我的核心问题是:
如何作为参数传递 instruction[self.arg1, value1] 并让程序编辑我在 instruction[0] 中提供的任何属性并设置其值我在 my_class 的 instruction[1] 中给出的任何值?
编辑:在下面的 cmets 之后删除了与问题核心无关的细节。
【问题讨论】:
-
很抱歉,您的代码或您的解释都没有多大意义……以至于我什至不知道该要求您改进什么。
-
你能举例说明你想要的结果吗?
some_other_args[]应该是什么意思? -
我建议您退后一步,从更大的角度描述您要解决的问题。
-
那么代码当前正在使用 If/elif(因此每个可能的按键对应于一个 If/elif 语句,然后执行结果为 True 的任何一个)。但我不喜欢它,因为它变得很长,很难看到按键的作用。同样在实际程序中,参数是列表,以这种方式放置可以更容易地循环它们,因为这样我只需在 def controls() 中编写一次 FOR 循环,它就会循环遍历我传递的任何内容一个参数并相应地设置值。
标签: python class dictionary