有几天我正在寻找解决问题的方法。 我有一个python对象,它有一组参数。
我正在逐行读取一个csv文件,我提取了与参数集对应的值。这些值按列表分组。所有csv行的长度不同,它们最少包含3个值,最多包含6个值。
我想要做的是:一旦我的列表准备就绪,我用这个列表更新我的对象的参数值
示例:
var doc = DocumentApp.getActiveDocument();
body = doc.getBody();
body.replaceText("@Entity
public class MyLong {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long long;
}
", "This is a number");
doc.saveAndClose();
输出:
class MidiData:
#constructor
def __init__(self):
self.Track = "0"
self.Time = "0"
self.Info = "0"
self.Channel = "0"
self.Note = "0"
self.Velocity = "0"
dictionary=['Track','Time','Info','Channel','Note','Velocity']
mylist=["a", "b", "c", "d", "e", "f"]
#function I want to implement
myobject.update(mylist)
myobject.print()
感谢您的帮助,我希望我的解释完整。
答案 0 :(得分:1)
zip
方便的地方。您可以执行myobject.update(dict(zip(dictionary, mylist)))
至于实施update
方法,你可以这样做:
myobject.__dict__.update(dict(zip(dictionary, mylist))
但我真的不建议用__dict__
做任何事情 - 如果你想要动态字段的东西,只需使用dict而不是自定义类。
答案 1 :(得分:1)
您可以在循环中使用__setattr__
按名称
def update(self, names, values):
for name, value in zip(names, values):
self.__setattr__(name, value)