Reputation: 317
I want to ask what is correct way to store information in python. Is it ok to store numbers in class (most of them integers) like this? Or some other way is better, more optimized.
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)
All of this is used in other functions that work with this class.
Upvotes: 0
Views: 94
Reputation: 2095
A dictionary would be appropriate for this.
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)
Output:
{'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
Upvotes: 1