Aktywne Wpisy

Wojciech_Skupien +509
Pamiętam jak kiedyś szedłem na siłownię z dużą torbą, to powiedziałem do syna: żegnaj Wojtusiu już się nie więcej spotkamy, tata się wyprowadza, na co on skwitował tylko: ale mama zostaje?
( ͡° ʖ̯ ͡°)
#tatacontent
( ͡° ʖ̯ ͡°)
#tatacontent

olito +74





1. Po wywołaniu klasy1 zwraca wartości poprawnie
2. Po wywołaniu klasy2 i dodaniu tego co zwraca klasa1 do listy, klasa2 zwraca id obiektu, ale jak wywołam konkretny indeks to znowu zwraca poprawnie. Dlaczego?
3. Trzecie pytanie dotyczy warunku. Skąd python wie która wartość to nr1 a która nr2 w liście, tym bardziej, że obie wartości znajdują się pod tym samym indeksem listy? Wygląda to tak jakby do listy zostało przekazane jakieś id zmiennej ale nie jestem pewny czy to tak działa i czy dobrze to rozumiem.
4. _str_ zwraca stringa, a jak zwrócić liczbę?
#python #programowanie
Ad. 2) chyba po prostu chodzi Ci o _reprlink
Ad. 3) pod tym samym indeksem listy znajduje się obiekt klasy1, python o tym wie (zobacz jak ci wypisał zawartość listy), więc jeśli dasz list[0].nr1 to on wie czego i jak szukać.
Ad. 4) chodzi o str_? to jest tylko funkcja używana tam gdzie wiadomo że powinien być tekst. Jak chcesz liczbę to albo wyciągasz konkretne pole (nr1,
1. nie ma czegoś takiego jak wywołanie klasy. print() domyślnie wywoła str() (czyli rzutowanie na stringa) na elemencie, czyli a str() zwróci to, co zwróci _str z klasy, które tu nadpisałeś.
2. printujesz całą listę, więc print woła str() na liście. tak wygląda domyślna reprezentacja listy jako string,
ad 3. do listy pryzpisujesz utworozny obiekt typu
klasa_1, a nie properties tej klasy czylinr1/nr2ad 4. stworz metode ktora zwraca liczbe np.
def value(self): return self.some_number2. Ponieważ lista zawiera obiekty a nie str(obiekt), odwołując się natomiast print(lista[0]) przywołujesz stringa z zerowego elementu listy. Aby lista zawierała w sobie string musisz albo ją tak zapisać czyli lista.append(str(obiekt)) lub zastosować repr albo zamiast wywoływać print(lista) zastosować print(list(map(lambda x: str(x),self.lista)))
3. Pisząc i.id1 przywołujesz z obiektu i zmienną id1 która sam wcześniej zapisałeś tworząc ten obiekt. Tutaj nie ma żadnego id po prostu bezpośrednio odwołujesz się do
@Arl0: no i tu sie kolega myli, jest to init, a sama instancje klasy mozemy wywolac call
Ale nadal uważam, że mówienie "wywołanie klasy" na tworzenie obiektu jest bez sensu
@Arl0: a to myślałeś że jak funkcje działają? funkcje też są obiektami ( ͡° ͜ʖ ͡°)