Siedziałem nad tym przez cały dzień i jestem trochę zmęczony, więc przepraszam, żebym był krótki.Przekazywanie zmiennych, tworzenie instancji, self, Mechanika i wykorzystanie klas: potrzebuję wyjaśnienia
Jestem nowy dla Pythona.
Po prostu przepisałem program roboczy, na szereg funkcji w klasie i wszystko poszło na marne. Nie wiem, czy to ja, ale jestem bardzo zaskoczony, że nie mogę znaleźć tutoriala dla początkujących na temat obsługi zajęć w sieci, więc mam kilka pytań.
Pierwszy wszystkim w sekcji __init__
klasy I zadeklarowały kilka zmiennych z self.variable=something
.
Czy to prawda, że powinienem mieć możliwość dostępu/modyfikacji tych zmiennych w każdej funkcji klasy za pomocą self.variable
w tej funkcji? Innymi słowy, deklarując self.variable
dokonałem tych zmiennych, zmienne globalne w zakresie klasy, prawda?
Jeśli nie, w jaki sposób radzę sobie?
Po drugie,, w jaki sposób poprawnie przekazać argumenty do klasy? Przykładowy kod byłby fajny.
Po trzecie,, w jaki sposób wywołać funkcję klasy spoza zakresu klasy? Przykładowy kod byłby fajny.
Fouthly, w jaki sposób mogę utworzyć instancję class INITIALCLASS
w innym class OTHERCLASS
, przechodząc zmienne z OTHERCLASS
do INITIALCLASS
? Przykładowy kod byłby fajny.
Chcę wywołać funkcję z OTHERCLASS
z argumentami od INITIALCLASS
. To, co zrobiłem do tej pory, to.
class OTHERCLASS():
def __init__(self,variable1,variable2,variable3):
self.variable1=variable1
self.variable2=variable2
self.variable3=variable3
def someotherfunction(self):
something=somecode(using self.variable3)
self.variable2.append(something)
print self.variable2
def somemorefunctions(self):
self.variable2.append(variable1)
class INITIALCLASS():
def __init__(self):
self.variable1=value1
self.variable2=[]
self.variable3=''
self.DoIt=OTHERCLASS(variable1,variable2,variable3)
def somefunction(self):
variable3=Somecode
#tried this
self.DoIt.someotherfunctions()
#and this
DoIt.someotherfunctions()
I wyraźnie nie rozumiał, jak przekazać zmienne do klas lub jak radzić self
, kiedy go używać i kiedy nie. Prawdopodobnie również nie rozumiem, jak poprawnie utworzyć instancję klasy. Generalnie nie rozumiem mechaniki zajęć, więc proszę pomóżcie mi i wyjaśnijcie mi to tak, jakbym nie miał pojęcia (czego nie wydaje mi się). Lub wskaż mi dokładny film lub czytelny samouczek.
Wszystko, co znajduję w Internecie, to bardzo proste przykłady, które mi nie pomogły. Lub po prostu bardzo krótkie definicje klas i metod metod instancji itp.
Mogę wysłać ci mój oryginalny kod, jeśli chcesz, ale jest dość długi.
Przeczytaj samouczek w języku Python [rozdział o klasach] (http://docs.python.org/tutorial/classes.html). – BrenBarn
Informacje na temat opcji formatowania znajdują się tutaj, szczególnie w przypadku kodu. – Marcin
Nie chcę być protekcjonalny, ale meta-odpowiedź polega na tym, że musisz trochę zwolnić i dowiedzieć się, gdzie twój kod odbiega od twoich oczekiwań. Staraj się wprowadzać drobne zmiany z działającego kodu i testuj każdą zmianę, aż coś się zepsuje. Refaktoryzują, nazywają to. Nie bój się, to tylko kod - nigdy nie ma sensu, dopóki to nie zrobi. – Ben