Aktywne Wpisy

mickpl +464
Nic głupszego teraz nie pada w przestrzeni publicznej, że politycy pis nie będą rozliczani, bo koledzy, bo pakt, bo my was nie ruszamy wy nas i tego typu niesamowite bzdury XD
Moi mili Tuska nie było za co rozliczać. Ani jego ekipy. Jedzenie ośmiorniczek to nie przestępstwo, a Nowak miał kłopoty przez zegarek, tyle.
Za to pis, moi drodzy symetryści to 8 lat złodziejstwa, korupcji, kolesiostwa, łamania prawa i naginania wszystkich zasad.
Moi mili Tuska nie było za co rozliczać. Ani jego ekipy. Jedzenie ośmiorniczek to nie przestępstwo, a Nowak miał kłopoty przez zegarek, tyle.
Za to pis, moi drodzy symetryści to 8 lat złodziejstwa, korupcji, kolesiostwa, łamania prawa i naginania wszystkich zasad.
Zulf +26
#sprzedamauto #motoryzacja #samochody #chwalesie
M5E60 115k przebiegu, po wymianie panewek i sprzegla. 540KM. Mocna i glosnia. Jak ktos jest powaznie zainteresowany to moge podeslac wiecej zdjec i spec.
M5E60 115k przebiegu, po wymianie panewek i sprzegla. 540KM. Mocna i glosnia. Jak ktos jest powaznie zainteresowany to moge podeslac wiecej zdjec i spec.





Teraz rozkminiam
__init__()- przykład z tę samą klasą zaimplementowaną na 2 sposoby: https://pastebin.com/qG1aJ9SUKlasa
Naprawto "typowa konstrukcja", gdzie wszystko mam w__init__, ale wymusza podawanie parametrów przy tworzeniu instancji.Klasa
Tagi- nie wiem jak często albo czy w ogóle taka konstrukcja jest używana, ale w mojej ocenie jest wygodniejsza w użyciu i bardziej wszechstronna.- można sobie instancję A) stworzyć bez parametrów:
Tagi()i potem je zmodyfikować wywołującobj.setup(...), albo B) stworzyć od razu z parametrami:Tagi.with_args(1, 2).- parametry obiektu można sobie zmodyfikować w dowolnym momencie metodą
self.setup()i jest to logiczne, skoro metoda jest zaprojektowana do wykorzystania przy inicjalizacji obiektu.- dziedziczenie po takiej klasie wydaje się łatwiejsze, szczególnie w przypadku dziedziczenia po wielu klasach jednocześnie, gdzie w przypadku
Napraw()potrzebna byłaby jakaś dziwna żonglerka parametrami, a tu można sobie daćsuper().__init__(*args, **kwargs)i przekazywać dalej parametry wymagane przez inne klasy.No ale może się nie zgadzacie i jednak lepiej wszystko wrzucać w
__init__()?#python #programowanie #oop
@Saly: Nie do końca nie ma. Czasami trzeba dziedziczyć po klasach z innych modułów i wtedy jest wspomniany problem z
super().__init__()i przekazywaniem odpowiednich parametrów.@MakuZo: No tak, tylko, że łatwiej implementuje się dziedziczenie inicjalizatora, który nie zakłada jakichś konkretnych parametrów pozycyjnych :P A odnośnie
objectto Python 3 i tak się po nim dziedziczy, tylko nie trzeba wpisywać, nie wiem, czy to miałeś na@MakuZo: A jeżeli chodzi o inicjalizację samego obiektu używając
**kwargs, już pomijając przekazywanie klasom dziedziczonym, to chyba niezbyt dobry pomysł, żeby inicjalizować obiekt z niesprecyzowanymi atrybutami?Nie rozumiem za bardzo problemu. Użyj jak człowiek argsow kwargsów albo domyślnych wartosci, jak chcesz mieć opcjonalne argumenty.
A żeby zmienić parametry w dowolnym momencie, to nie wiem, może instancja.parametr = nowa_wartość?
Z dziedziczeniem nie ma żadnych problemów, wymyślasz sobie.
@m_bielawski: Atrybuty klasy są w definicji klasy i nigdzie indziej ich nie modyfikuję. Jeżeli chodzi ci o metodę
cls.with_args(), to w niej modyfikuję obiekt, a nie klasę, więc atrybuty klasy pozostają niezmienione - ciągleNone.