Kezdőoldal » Számítástechnika » Programozás » Pythonba ha van egy def egy...

Pythonba ha van egy def egy másik defen belül, akkor az hogyan tud meghívni adatok a felsőbb def-ből?

Figyelt kérdés

Itt a programomból a bajos rész:


def Hozzaadas():

def Mappa():

Clear()

tk.Label(frame1,text="Mappa neve ").grid()

nev = tk.Entry(frame1)

nev.grid(row=0,column=1)


def ok():

global nev

global actual

actual.append({'nev': nev.get(), 'tipus': 'mappa', 'tartalom': []})


tk.Button(frame1,text="Mappa mentese",width='45',command=lambda: ok()).grid(row=2,columnspan=2)


Clear()

tk.Button(frame1, text="Mappa hozzaadasa", command=lambda: Mappa(), width='45').grid()

tk.Button(frame1,text='Jegyzet Hozzaadasa',command=lambda:Jegyzet(),width='45').grid()


A gond az, hogy nem tudom használni a ' global nev ' reszt, mert a nev is egy külsőbb functionon belül van. Bocsi ha nagyon rosszul fogalmaztam, válaszaitokat előre is köszönöm! :D



2019. júl. 29. 14:14
 1/4 anonim ***** válasza:
100%

Nem tudom feltűnt-e, hogy:

1. A Python programok működése függ az indentálástól.

2. Amikor ide kiposztoltad a kódodat mindenféle indentálás eltűnt.


Ezeknek függvényében érdemes lenne újragondolni a kérdést.

2019. júl. 29. 17:09
Hasznos számodra ez a válasz?
 2/4 Ozmium42 ***** válasza:

Simán eléri a belső függvény a külső függvényben lévő változókat, amik előtte vannak:


def kulso_fuggveny():

___x = 1

___def belso_fuggveny():

______print(x)

___belso_fuggveny()

kulso_fuggveny()

>>> 1


A kódodat nem lehet indentálás nélkül értelmezni. (Továbbá az egymásba ágyazott függvénydefiníciók valószínűleg feleslegesek. Továbbá... fú...)

2019. júl. 29. 18:18
Hasznos számodra ez a válasz?
 3/4 Ozmium42 ***** válasza:

Bocs, félreértettem a kérdést. Egyik defből a másikba nem lehet változókat elérni. A függvény hívásánál (nem a definiálásnál!) lehet változókat globálissá tenni, amit aztán egy másik függvény egy későbbi hívás során láthat.


Pl.


def fuggveny1():

___global x

___x = 2


fuggveny2():

___print(x)


fuggveny1() -> ettől és ekkortól globális az x változó.

fuggveny2()

>> 2

2019. júl. 29. 18:24
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Bocsi, siettem, tényleg elég értelmetlen lett a kérdésem, de köszönöm a harmadiknak, sikerült is megoldani :D
2019. júl. 29. 18:56

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!