Zmienna do niższego poziomu Python

0

Siemka!
Chciałbym prosić Was o pomoc. Zaczynam przygodę z Pythonem, robię różne mało ważne rzeczy, lubię jednak je kończyć. Problem jaki spotkałem mi to uniemożliwia, mianowicie, muszę przekazać zmienną wcięcie wcześniej, pojęcia nie mam jak się za to zabrać.
Z góry dzięki za odpowiedź
Pozdrawiam
Robin98

0

Może po prostu zadeklaruj ją w tym "wcięciu wcześniej"?

0

Niestety, nie bardzo robię aplikację w wx i chciałbym żeby dana z okna była przekazana poza tą funkcję okna. Czy istnieje taka możliwość

0

Eee zrób do niej po prostu geter i spoza okna ją sobie pobierz? o_O

0
Patryk27 napisał(a):

Może po prostu zadeklaruj ją w tym "wcięciu wcześniej"?

Python ma w tym względzie mechanikę podobną do JS, opiera się o function scope, nie block scope.

0

Proszę o wyrozumiałość, to moje początki programowania.
Mam taką o to klasę:

class Path(object):
    def __init__(self):
        self.var = 100
    def get_var(self):
        return self._var
    def set_var(self, new_var):
        self._var = new_var
    bmp = property(get_var, set_var)

wykonuje go mniej wiecej tak

Path.set_var = 200
print Path.get_var

Co robię źle?

0

Posługujesz się klasą zamiast jej instancji, używasz różnych nazw pól klasy (var vs _var) i przypisujesz do settera zamiast property:

path = Path()
path.bmp = 200
print path.bmp

Property możesz zapisać przy pomocy dekoratorów:

class Path(object):
    def __init__(self):
        self._var = 100
    @property
    def var(self):
        return self._var
    @var.setter
    def var(self, new_var):
        self._var = new_var
0

A gdybyś chciał tradycyjnie (bez użycia property), to tak:

path = Path()
path.set_var(200)
print path.get_var()
0

W

@var.setter

dostaję błąd
redefinition of function 'var' from line 10
a w linii 10 jest

@property
0

Kod jest prawidłowy, używasz jakiejś archaicznej wersji Pythona?
http://ideone.com/ac7we - 2.x
http://ideone.com/gHz31 - 3.x

0

Korzystam z Python(x,y)
mam Pythona 2.7

1 użytkowników online, w tym zalogowanych: 0, gości: 1