是否可以将字典值设置为类?
不确定我是否在这里以正确的方式使用课程,但是如下:
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
答案 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
的实例之后设置类的属性。