Wpis z mikrobloga

Mam pytanie może głupie może mądre, może brakuje mi absolutnych podstaw xD nie wiem.
Wywołuje z funkcji w klasie x funkcje z w klasie y i podaje tam potrzebną dane. funkcja z przy okazji zmienia zmienną zadeklarowaną w klasie y przypisując podaną wartość. Dzięki printom wiem że wartość zostaje zapisana w zmiennej. Jednak gdy wywołuje zmienną przyciskiem wartość jest pierwotna, lub zmienna w ogóle nie jest utworzona jeżeli nie przypisze czegoś z poziomu klasy. ALE jeżeli później odpalę tamtą funkcje z przyciskiem to wszystko działa jak jest zaplanowane.

Pytanie, co się dzieje takiego przy wywoływaniu funkcji z innej klasy że nie chce działać(zmienna nie zapisuje się w obrębie klasy x, po prostu nigdzie jej nie ma).

#python
  • 10
@mg_93: Kodu jest w #!$%@? i wiele by nie pomogło. Zasadniczo chodzi mi o to że metoda odpalona przez metodę pochodzącą z innej klasy nie jest w stanie zmienić wartości zmiennych w swojej klasie.

Model uproszczony jest mniej więcej taki.

class y()
ticker = "def"
def che(self, ticker, tabheader):
self.ticker = ticker
tabheader.content = tabContent()
print(self.ticker)
print(tabheader)
self.assign(ticker)

class x()
def addTab(self, name):
#try:
print("something?")
th = TabbedPanelHeader(text=name)

self.ids.tabz.addwidget(th)
@Xardin: Wywołując y() inicjalizujesz nową instancję klasy. Po inicjalizacji atrybut ticker jest ustawiony na "def".
Na pewno zadziała zrobienie y.ticker = ticker1 w linii 5.
Ale nie polecam takiego nadpisywania atrybutu klasy, raczej klasa x powinna zawierać w sobie jakąś instancję klasy y i powinieneś używać cały czas tego samego obiektu.