Aktywne Wpisy
![tabpaw](https://wykop.pl/cdn/c0834752/5dd071f75e590e91dc585560f5abfdfea0329d852291635e16c8e724ad9a41d5,q60.jpg)
tabpaw +242
Tak sobie myślę o tym wszystkim co się dzieje w Polsce na rynku nieruchomości to załamuję ręce...
Mam 25 lat i kurczę no chciałbym w końcu mieszkać na swoim. Jestem reprezentantem młodych, przeciętnych ludzi, którzy mają pracę (nie, nie 15k IT), mam dziewczynę, jakieś wizje przyszłości lub po prostu już tylko marzenia. Nie mam bogatych rodziców, nic od nikogo nie dostałem, a w tym kraju nawet nie mogę się w pełni usamodzielnić
Mam 25 lat i kurczę no chciałbym w końcu mieszkać na swoim. Jestem reprezentantem młodych, przeciętnych ludzi, którzy mają pracę (nie, nie 15k IT), mam dziewczynę, jakieś wizje przyszłości lub po prostu już tylko marzenia. Nie mam bogatych rodziców, nic od nikogo nie dostałem, a w tym kraju nawet nie mogę się w pełni usamodzielnić
![Salido](https://wykop.pl/cdn/c3397992/Salido_k44H8zwwFT,q60.jpg)
Salido +279
Minął 11. (z 73) dzień wakacji.
W ciągu ostatniej doby miało miejsce 8 wypadków śmiertelnych w których zginęło 8 osób.
65 wypadków drogowych ze skutkiem śmiertelnym od początku wakacji.
69 ofiar śmiertelnych w wypadkach drogowych od początku wakacj
W ciągu ostatniej doby miało miejsce 8 wypadków śmiertelnych w których zginęło 8 osób.
65 wypadków drogowych ze skutkiem śmiertelnym od początku wakacji.
69 ofiar śmiertelnych w wypadkach drogowych od początku wakacj
![Salido - Minął 11. (z 73) dzień wakacji.
W ciągu ostatniej doby miało miejsce 8 wyp...](https://wykop.pl/cdn/c3201142/ded798327872da71f6fcd80b53ac1829c6e44fb5015fb6a13897bf425303f238,w150.gif)
źródło: 1-411243-22
Pobierz
Mireczki i Mirabełkanki, dawno nie pisałem w #python i zapomniałem. Mam taki legacy kod, który ma między innymi:
KlasaA(metaklasa/interfejs)
KlasaB(list)
KlasaC(KlasaB)
KlasaD(KlasaB, KlasaA)
KlasaE(KlasaA, KlasaC)
W klasach D i E jest sporo zduplikowanego kodu, ktory potrzebuje dołożenia jednej funkcjonalności.
class D(...):
....def a(self, a1, a2,...)
....def b
....def c
class E(...)
....def a(self, a1, a2, ...)
....def b
....def c
Same abc nie są duże i sama (nie)potrzebna "dobra zmiana" też malutka ( ͡º ͜ʖ͡º)
Oczywiscie, mogę przekazać do init'a D i E dodatkowy parametr (nowy_ficzer=False) i odpowiednio zmodyfikować obie klasy.
Jednak, choć nie jestem w stanie przepisać całości (tysiące/dziesiątki tysiecy linii kodu), wkurza mnie ta duplikacja i chciałem sobie przypomnieć jak bym to dawniej rozwiązał, ale napotkałem page_fault ( ͡° ʖ̯ ͡°)
Z krótkich poszukiwań na necie i w mojej pamieci:
1. Moglbym dołożyć do mro kolejną klasę do dziedziczenia
2. Kompozycja, gdzie np w inicie ustawiam,
self.a = self.better_a if (nowy_ficzer) else self.old_a
3. Mógłbym wyjąć a z obu klas do zwykłych globalnych funkcji modułu i dalej jak w punkcie 2
4. Mógłbym trzymać te kilka funkcji w jakieś klasie typu utils (tyle że i tak są już zbyt duże, trzymały by kolejny obiekt x (co prawda redukując a,b,c)
5. dekorator do metod w klasach (czyli w zasadzie to co w 2 tylko w runtime, zamiast podczas init'a)
6. Nie pamietam co robiło abc / abstract base class i czy by mi pomogło,
7. Za cholerę nie pamietam też meta-klas ale też pewnie by można spakować D i E do DE i stworzyć z nich inne D i E
Z grubsza to wszystko co mi przychodzi do głowy. Ma ktoś inne pomysły?
Końcowo, chciałbym by ficzer był jak najmniej "intruzywny", oraz wywalić nieco duplikacji, nie powiększać zbytnio zależności.