这是一个班级
Class A:
def __init__(self, a, b):
self.a = a
self.b = b
def set_value(self,"attribut_String",value): # passing a attribute in String
if "attribut_String" = "AAAA":
self.cal_function("a",value)
else "attribut_String" = "BBBB":
self.cal_function("b",value)
def cal_function(self,att,value):
self.att = value # process the passing string as attribute object
现在,我试着这样的结果:
input:rlt = A(a = 1, b = 2)
input:rlt.a
output: 1
input:rlt.set_value("a",3)
input:rlt.a
output:4
似乎没必要,因为我简化了方案。我必须以这种方式编码
答案 0 :(得分:3)
您可以在set_value
功能中使用控制流:
def set_value(self, member, value):
if member == "a":
self.a = value
elif member == "b":
self.b = value
如果您不介意放弃set_value
功能,可以使用setattr
功能:
setattr(myobject, "a", value)
甚至
def set_value(self, member, value):
setattr(self, member, value)
您还可以使用字典:
def set_value(self, member, value):
members = {
"a" : self.a,
"b" : self.b
}
members[member] = value