在python中使用for循环正确的编程技术来创建对象?

She*_*don 1 python class list object

好吧基本上我正在从文件中读取数据,并且我希望为每行创建一个对象.

所以类似于:

bar = [['a','b'],['c','d']]

for foo in bar:
    foo = Class_name(list_of_arguments)
Run Code Online (Sandbox Code Playgroud)

什么是"解包"列表的最佳技术?这最好是在类的初始化方法中完成,还是在创建对象之前更好地执行此操作并以非列表格式传递参数?我问,因为列表包含与该类将使用的对象有关的信息.

此外,我希望每个对象都有一个独特的名称,我该怎么做?它最好用于列表中的一个值吗?

g.d*_*d.c 6

我......我想我理解你的问题.我可能会这样做:

class myClass():
  def __init__(self, *args):
    # something here that actually uses the arguments.

data = [['a', 'b'], ['c', 'd']]

objects = [myClass(*vals) for vals in data]
Run Code Online (Sandbox Code Playgroud)

这应该为每组值实例化myClass并返回可通过索引访问的新对象列表.

  • @Sheldon - 哪个部分?如果`[x for x in y]`语法让你失望,列表理解是值得阅读的.一旦你绕过那些,我在这里使用的下一个想法就是我正在解压缩内部列表以将它们传递给myClass的构造函数.这就是`myClass(*vals)`的用武之地.HPH. (2认同)