将字典值设置为类?

时间:2012-02-14 03:34:07

标签: python

是否可以将字典值设置为类?
不确定我是否在这里以正确的方式使用课程,但是如下:

class ValueClass:

    def __init__(self,foo,foo2,foo3):

        self.foo=foo
        self.foo2=foo2
        self.foo3=foo3 

res={}

with open('foo.txt','r') as lines:

     for line in lines:
         k=line.split()[4]
         foo=line.split()[5]
         foo2=line.split()[6]
         foo3=line.split()[7]
         res[k]=ValueClass

1 个答案:

答案 0 :(得分:1)

使用此代码,您将res[k]设置为ValueClass类型,实际上并不是它的实例(我猜不是您的意图?)。

你可能想要这样做:

class ValueClass(object):
   def __init__(self, foo=None, foo2=None, foo3=None):
     self.foo = foo
     self.foo2 = foo2
     self.foo3 = foo3 

res = {}

for line in lines:
  k, foo, foo2, foo3 = line.split()[4:7]
  res[k] = ValueClass()

如果要使用这些值初始化类,可以执行以下操作:

for line in lines:
  k, foo, foo2, foo3 = line.split()[4:7]
  res[k] = ValueClass(foo, foo2, foo3)

这使您可以在res[k] ValueClass实例之后设置类的属性。