scorpio18k
Co ten #python

class A:
def _init(self, x):
self.x = x

def pobierz
x(self):
return self.x

a = A(10)

print(a.pobierz_x)

Zamiast napisać 10 to wywala: >
O co tu chodzi?
  • Najlepsze
  • Wszystkie komentarze
simia
simia
simia
5
Moze pobierz_x()?
Xaaq
Xaaq
5
@scorpio18k: Chodzi o to że nie wywołałeś tej metody, tzn. print(a.pobierz_x())
Arogancky
Ps. Dobra praktyka jest (nawet dla testu) uzywac angielskiego nazewnicta :)


@mikwiat: isPies = True
( ͡° ͜ʖ ͡°)
mikwiat
mikwiat
@Arogancky: ;) if isTrue == true return false
mikwiat
mikwiat
@scorpio18k: A.pobierzx gdy pobierzx to variable a A.pobierz_x() gdy metoda.
Ps. Dobra praktyka jest (nawet dla testu) uzywac angielskiego nazewnicta :)
mikwiat
mikwiat
@Arogancky: Zrozumialem :) na kontre dalem przyklad kodu z ktorym kiedys na studiach sie spotkalem :)
cosmopolitan
cosmopolitan
@trzy_razy_rzezucha:

Adres instancji (obiektu) tej klasy.

>>> class X:
... foo = lambda *_,
scorpio18k
scorpio18k Autor
0
@simia: @Xaaq: xd dzięki
Arogancky
@mikwiat: bardziej chodziło mi o pomieszanie polisza z ingliszem ale spoko xD
trzy_razy_rzezucha
@scorpio18k: mówiąc bardziej dokładnie wyprintowało ci adres funkcji tej instancji a klasy A w pamięci
edit: czy adres metody klasy A dla instancji a?
cosmopolitan
cosmopolitan
Oczywiście o jednej pierwotnej kopii funkcji świadczą też raz wyliczane argumenty domyślne (częsty problem początkujących - referencje obiektów jako argumenty domyślne).
Python musiałby to wszystko przeliczać wielokrotnie, dlatego kopie funkcji są robione "on demand", a same referencje zachowane. To zwykłe słowniki pod spodem są.