Aktywne Wpisy
![highwaytohell](https://wykop.pl/cdn/c3397992/highwaytohell_vqH6JsRrgF,q60.jpg)
Elo! Mam taką rozkminkę i się zastanawiam co obcy ludzie pomyślą o tym w Internecie ;)) i powiedzą mi czy moje emocje są normalne czy nie ;)
Mianowicie, sytuacja jest taka:
Moi rodzice wymyślili że kupią mieszkanie moje siostrze. Siostra ma 35 lat, jest sama, mieszka w dużym mieście. Mieszkanie, jak wiadomo, w dużym mieście kosztuje mały majątek tj ok 700 tys. Rodzice mają jeszcze mnie i brata. My oboje mamy rodziny
Mianowicie, sytuacja jest taka:
Moi rodzice wymyślili że kupią mieszkanie moje siostrze. Siostra ma 35 lat, jest sama, mieszka w dużym mieście. Mieszkanie, jak wiadomo, w dużym mieście kosztuje mały majątek tj ok 700 tys. Rodzice mają jeszcze mnie i brata. My oboje mamy rodziny
![d4wid](https://wykop.pl/cdn/c3397992/d4wid_BhGervI5Q2,q60.jpg)
d4wid +152
Class Test
Def __init__(self, arg1, arg2)
A teraz instancjonuje obiekt:
obj = Test(arg1,arg2)
Dlaczego wiec podaje się dwa argumenty a olewa self, który również jest argumentem?
#python #naukapythona
Python jest bardziej obiektowy niż java, tutaj nawet klasa jest obiektem. ( ͡° ͜ʖ ͡°)
źródło: comment_w5avrSd1zLSmcdQgH4xWY7r5OXElGkOa.jpg
PobierzA możesz mi objaśnić, dlazego w powyższym kodzie, w momencie tworzenia instancji A, podawany jest argument „2”, pomimo że w deklaracji konstruktora pierwszy z lewej jest „self”?
Co mi podpowie IDE, 3 argumenty czy 2?
I dlaczego generalnie widnieje to self? Pytam jako phpowiec chcący poznać pythona. W PHP wewnątrz klasy jest $this dla instancjinoraz self dla samej klasy.
a = A(2)
'a' leci jako pierwszy argument, 2 jako drugi. Podobnie w przypadku wywoływania metod na obiekcie, obiekt trafia jako pierwszy argument. Pycharm z tego co pamiętam podpowiada dwa, tak na logikę inne IDE będą robić tak samo.A dlaczego? Bo tak. ( ͡° ͜ʖ ͡°)
Wszystkie metody
def foo(self, b):
self.b = 2
class A:
pass
a = A()
a.foo = foo
a.foo(a, 3)
ile będzie wynosiło a.b? tak dwa
dlaczego to w ogóle działa? bo obiektowość w pythonie jest inna niż w javie, c# czy c++. ale przez syntax sugar udaje ze wszystko jest standardowo, coś jak js es6
tutaj musiałem podać selfa, dlaczego? bo python już nie wiedział czy ma go
http://collabedit.com/v32x9
Pobawię się jutro na PC bo teraz na smartfonie jest niewygodnie ;)
Dzieki wielkie
Komentarz usunięty przez autora Wpisu