Mam zagwozdkę z #python. Potrzebuję metody dla klasy, która zmienia wartość nieokreślonej zmiennej o 1, bo nie chcę mi się pisać 15-stu metod dla każdej zmiennej:
class JakasKlasa(parent): nieokreślona ilość zmiennych def funkcja(self): self.jedna_ze_zmienny += 1 Jest jakiś sposób na przekazanie do metody klasy nazwę odpowiedniej zmiennej? Przekazanie jej w argumencie nie wchodzi w grę :(
@Anorax: nie wiem co cpiesz, ale cos robisz zle. Opisz konkretnie jaki problem rozwiazujesz, bo cos czuje, ze masz typowy syndrom XY. Also: czemu nie mozesz po prostu zwiekszac tej zmiennej bezposrednio na obiekcie?
x = JakasKlasa(); x.jedna_ze_zmiennych += 1 Wystarczy, ze te swoje zmienne (atrybuty obiektu) zainicjalizujesz w __init__
Mam zagwozdkę z #python. Potrzebuję metody dla klasy, która zmienia wartość nieokreślonej zmiennej o 1, bo nie chcę mi się pisać 15-stu metod dla każdej zmiennej:
class JakasKlasa(parent):
nieokreślona ilość zmiennych
def funkcja(self):
self.jedna_ze_zmienny += 1
Jest jakiś sposób na przekazanie do metody klasy nazwę odpowiedniej zmiennej? Przekazanie jej w argumencie nie wchodzi w grę :(
setattr(self, 'jednazezmiennej', getattr(self, 'jednazezmiennej')+1) gdzie jednazezmiennej to argument przekazany do funkcji
Also: czemu nie mozesz po prostu zwiekszac tej zmiennej bezposrednio na obiekcie?
x = JakasKlasa(); x.jedna_ze_zmiennych += 1
Wystarczy, ze te swoje zmienne (atrybuty obiektu) zainicjalizujesz w
__init__
>>> class A:
... ...
...
>>> a = A()
>>> a.zmienna = 5
>>> a.zmienna
5
>>> setattr(a, 'zmienna', getattr(a, 'zmienna') + 1)
>>> a.zmienna
6
>>>