Így lettem láthatatlan

Ebben a posztban az objektumhivatkozások bujkálnak előttünk, egymás előtt, komolyan mondom, tiszta kémjátszma.

A mai videó nagyon-nagyon hosszú: majdnem fél órás. Cserébe viszont nehéz.

Feladatok

F0032a: Igaz-e, hogy a következő függvény belsejében van egy helyi, azaz lokális “a” objektumhivatkozásunk? (Válasz fehérrel, ha kijelölöd, meglátod: Igen, és ugyanarra az objektumra mutat, mint a globális “a”. Onnan tudjuk, hogy ez egy másik “a”, hogy ha a függvény belsejében kiadjuk az a = 10 utasítást, a főprogram sosem fog tudni róla, hogy “a” értéke megváltozott – hiszen az egy másik “a” volt.)


def függvény(a):
    b = 2

a = 1
függvény(a)

 

 

F0032b: Igaz-e, hogy a következő függvény belsejében nincs lokális a objektumhivatkozás? Fog működni a print()? (Válasz fehérrel, ha kijelölöd, meglátod: Igaz, és fog működni: ha a Python nem találja a helyi objektumhivatkozások közt azt, amivel dolgozni akarunk, akkor szétnéz eggyel feljebb.)


def függvény():
    b = 2
    print(a)

a = 1
függvény()

 

 

F0032c: Igaz-e, hogy a következő függvény belsejében van egy helyi, azaz lokális “a” objektumhivatkozásunk? (Válasz fehérrel, ha kijelölöd, meglátod: Igen, és egy másik objektumra mutat, mint a globális “a”. (Legalábbis a elvileg – lásd az előző poszt videójának végét -, de te kezelheted úgy, mintha ez nem csak elvileg lenne így.)


def függvény():
    a = 1
    b = 2

a = 1
függvény(a)

Előzőleg az objektumok másolásával foglalkoztunk. Legközelebb nekifogunk az összetett programozási tételeknek.

Advertisements

Így lettem láthatatlan” bejegyzéshez ozzászólás

    • Valóban, valószínűleg függvény(a) helyett egyszerűen függvény() lenne értendő. Persze nem ez az egyetlen mód, hogy helyesen működjön: a függvényt *args-paraméterrel is elláthatnánk, de aligha ez volt a szándék.

      Kedvelés

    • Ezt valamiért nem láttam, pőedig már jó régi, de most Mr. Polgár hozzászólása miatt észrevettem:) Köszönöm szépen! Javítom.

      Kedvelés

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s