Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python存储信息的正确方法是什么_Python_Database_Python 2.7_Class - Fatal编程技术网

用python存储信息的正确方法是什么

用python存储信息的正确方法是什么,python,database,python-2.7,class,Python,Database,Python 2.7,Class,我想问一下用python存储信息的正确方法是什么。像这样在类中存储数字(大多数是整数)可以吗?或者其他更好、更优化的方法 class Eclass: def __init__(self, name, pre=None, suf=None, t=None, g=None, subg=None, p=0, a=0, m=0, v=0, ast=0, d=0, bd=0, bhc=0, cc=0, bc=0, bhp=0, bmp=0, hpr=0, mr=0

我想问一下用python存储信息的正确方法是什么。像这样在类中存储数字(大多数是整数)可以吗?或者其他更好、更优化的方法

class Eclass:
    def __init__(self, name, pre=None, suf=None, t=None, g=None, subg=None, p=0, a=0, m=0, v=0,
                 ast=0, d=0, bd=0, bhc=0, cc=0, bc=0, bhp=0, bmp=0, hpr=0, mr=0, br=0, pr=0,
                 sr=0, fr=0, er=0, ar=0, wr=0, ar=0, dr=0, vr=0, bar=0, lbr=0, lpr=0, lsr=0,
                 lfr=0, ler=0, lar=0, lwr=0, lare=0, ldr=0, lvr=0, lear=0, sl=0, sm=0, mr=0,
                 rr=0, td=0):
        self.name = name
        self.pre = pre
        self.suf = suf
        self.t = t
        self.g = g
        self.subg = subg
        self.oi = name
        self.p = p
        self.a = a
        self.m = m
        self.v = v
        self.ast = ast
        self.d = d
        self.bd = bd
        self.bhc = bhc
        self.cc = cc
        self.bc = bc
        self.bhp = bhp
        self.bmp = bmp
        self.hpr = hpr
        self.mr = mr

        self.br = br
        self.pr = pr
        self.sr = sr
        self.fr = fr
        self.er = er
        self.ar = ar
        self.wr = wr
        self.ar = ar
        self.dr = dr
        self.vr = vr
        self.bar = bar

        self.lbr = lbr
        self.lpr = lpr
        self.lsl = lsr
        self.lfi = lfr
        self.lea = lea
        self.lai = lai
        self.lwa = lwa
        self.lae = lar
        self.ldi = ldr
        self.lvo = lvr
        self.lear = lear

        self.sl = sl
        self.sm = sm

        self.mr = mr
        self.rr = rr
        self.td = td

        self.tags = []

    def add_tags(self, *args):
        for element in args:
            self.tags.append(element)

所有这些都用于与此类一起工作的其他函数。

字典适用于此

dic1 = dict(pre=None, suf=None, t=None, g=None, subg=None, p=0, a=0, m=0, v=0, ast=0)
dic1['lwa'] = 0
dic2 = {'a': 0, 'suf': None, 'pre': None, 'g': None, 'ast': 0, 'm': 0, 'p': 0, 'subg': None, 't': None, 'v': 0, 'lwa': 0}

print (dic1)
print (dic2)
print (dic1['t'])
print (dic2['lwa'])
print (dic1 == dic2)
输出:

{'a': 0, 'suf': None, 'pre': None, 'g': None, 'ast': 0, 'm': 0, 'p': 0, 'subg': None, 't': None, 'v': 0, 'lwa': 0}
{'pre': None, 'ast': 0, 'subg': None, 'a': 0, 'suf': None, 'g': None, 'm': 0, 'p': 0, 't': None, 'v': 0, 'lwa': 0}
None
0
True

您应该使用字典或列表之类的结构。此外,请为属性使用更多描述性名称。这当然会起作用,但可能很难使用-它需要大量的键入,并且很容易出错。查找字典或数据框以了解更复杂的任务。感谢您的两个答案是另一种选择。如果您有很多值,那么与字典相比,内存使用率要低得多。