在Python中创建自定义对象,仅保存数据

时间:2015-03-25 22:52:30

标签: python

我打算使用自定义数据类型来加载和保存磁盘上的数据。这将简化我的工作,因为我可以使用点符号访问每条信息。

我从未在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方式做到这一点。

1 个答案:

答案 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