【发布时间】:2018-07-28 08:09:30
【问题描述】:
如何在循环中初始化类实例的属性?下面的例子解释了我想要做什么。想象一个有二十到三十个属性的类。必须有一种有效的方法来设置值。我是否必须在字典中更改我的类属性才能这样做?但这将是一个问题,因为我正在使用 Django 框架来创建带有此示例中的类的表。提前致谢!
class Foo():
fieldA = float()
fieldB = float()
fieldC = float()
fieldD = float()
fieldE = float()
fieldF = float()
# several more field elements
def main():
foo_instance = Foo()
# open here excel file with openpyxl library
wb = openpyxl.load_workbook(BASE_DIR + file, read_only=True, data_only=True)
ws = wb['sheet1']
# I would like to iterate through the instance
for i in range(1,20):
foo.fieldA = float(ws['A{}'.format(i)]) #how to iterate through the attributes from foo instance?
'''
This is the inefficient way:
foo.fieldA = float(ws['A1'])
foo.fieldB = float(ws['A2'])
foo.fieldC = float(ws['A3'])
foo.fieldD = float(ws['A4'])
foo.fieldE = float(ws['A5'])
etc.
'''
if __name__ == "__main__":
main()
【问题讨论】:
标签: python loops class instance