我打算使用自定义数据类型来加载和保存磁盘上的数据。这将简化我的工作,因为我可以使用点符号访问每条信息。
我从未在Python中做过类似的事情,所以我做了一些研究,发现Python有一个struct模块。虽然,我想做的就是拥有一个包含数据的对象。这样可以吗?
class myobj(object):
a=None
b=None
c=None
def __init__(self, a, b, c):
self.a=a
self.b=b
self.c=c
我将以这种方式使用它:
mydict = defaultdict(myobj)
mylist = (item1, item2, item3)
for val in mylist:
myobj.a = 12
myobj.b = "hello"
myobj.c = True
mydict[val] = myobj
这是正确的还是我做错了?我想以适当的Python方式做到这一点。
答案 0 :(得分:2)
根据我上面的评论,我更改了您的代码示例,因此它更多"更多"现在可以。
class myobj(object):
def __init__(self, a, b, c):
self.a=a
self.b=b
self.c=c
mydict = {}
a_list = [1, 2, 3]
for val in a_list:
mydict[val] = myobj(12, "hello", True)
它还没有在磁盘上保存任何东西,但它的良好开端。如果你能说清楚你想要存储对象的内容和方式,或者说什么样的数据,那么我可以帮助你做得更好。
替代版本:
class myobj(object):
def __init__(self, a=0, b="", c=False):
self.a=a
self.b=b
self.c=c
mydict = {}
a_list = [1, 2, 3]
for val in a_list:
an_myobj = myobj()
an_myobj.a = 12
an_myobj.b = "hello"
an_myobj.c = True
mydict[val] = an_myobj