kaip reikia paveldėti ir builtino tuple, kad išlaikyti visas tuple savybes?
Pvz. noriu turėti
class MyClass(tuple):
def __init__(self, name=None):
self.name = name
self.somedata = InitializeSomeImmutableDefaultData()
if __name__ == "__main__":
t = MyClass("name")
Tokios klasės man reikia, nes yra tam tikri duomenys, kuriuos aš žinau iš anksto ir noriu inicializuoti kaip tuple, bet nenoriu kaip atskiros savybės daryti, kad kreiptis per tašką: for i in t.mydata, tiesiog noriu for i in t
class MyList(list):
def __init__(self, name='default'):
list.__init__(self, ['a', 'b', 'c'])
self.name = name
if __name__ == '__main__':
a = MyList('name')
assert 'a' in a
assert 'name' == a.name
class MyList(list):
def __init__(self, name='default'):
super(MyList, self)
self.append("a")
self.append("b")
self.append("c")
self.name = name
if __name__ == '__main__':
a = MyList('name')
assert 'a' in a
assert 'name' == a.name
class MyList(list):
def __init__(self, name='default'):
list.__init__(self)
self.extend(['a', 'b', 'c'])
self.name = name
if __name__ == '__main__':
a = MyList('name')
assert 'a' in a
assert 'name' == a.name
Sveiki,
kaip reikia paveldėti ir builtino tuple, kad išlaikyti visas tuple savybes?
Pvz. noriu turėti
Tokios klasės man reikia, nes yra tam tikri duomenys, kuriuos aš žinau iš anksto ir noriu inicializuoti kaip tuple, bet nenoriu kaip atskiros savybės daryti, kad kreiptis per tašką: for i in t.mydata, tiesiog noriu for i in t
Nors gal tuple ne pats tinkamiausias man variantas, geriau gal list'ą...
Nesvarbu, list ar tuple, daroma taip pat:
Na taip, bet jeigu aš noriu iškart užpildyti kažkokiais duomenimis, kaip tada daryti?
Ta prasme, kad a = MyList(name="somename"), a jau būtų užpildytas duomenimis... Pvz:
Ir listas nebus su "a", "b" ir "c" reikšmėm. Tai va ir klausimas, kaip padaryti, kad jis jau būtų užpildytas, kai tik sukūriu klasę?
Tokiu atveju, reikia daryti taip:
Arba dar galima ir taip:
Bet vistiek ačiū
Arba dar galima ir taip:
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=11&t=5234