Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Funktioiden

...

yhteydessä

...

tulee

...

huomioida

...

muuttujien

...

näkyvyys.

...

Tämä

...

viittaa

...

siihen,

...

että

...

kaikki

...

muuttujat

...

eivät

...

ole

...

käytettävissä

...

joka

...

lohkossa.

...

Tiettyjä

...

tunnisteita

...

sisältäviä

...

lohkoja

...

sanotaan

...

myös

...

nimiavaruuksiksi.

...

Funktion

...

sisällä

...

määritellyt

...

muuttujat

...

eivät

...

ole

...

käytettävissä

...

sen

...

ulkopuolella.

...


 
Pythonissa on koodissa ns.

...

päätaso,

...

eli

...

alin

...

koodiosio,

...

jossa

...

ei

...

ole

...

yhtään

...

sisennystä.

...

Tässä

...

määritellyt

...

muuttujat

...

ovat

...

globaaleja

...

muuttujia.

...

Funktioiden

...

sisällä

...

globaaleja

...

muuttujia

...

voi

...

käyttää

...

avainsanan

...

global

...

avulla;

...

käytettävät

...

muuttujat

...

luetellaan

...

avainsanan

...

jälkeen.

{
Code Block
}
def Function():
    global s
    print(s.upper())
     
s = "globaali merkkijono"
 
Function()
 
input("Paina Enter näppäintä lopettaaksesi...")
{code}

Globaaleihin

...

muuttujien

...

käyttöön

...

voi

...

tosin

...

liittyä

...

muutamia

...

hankaluuksia.

...

Ohjelman

...

toimintaa

...

voi

...

olla

...

vaikea

...

ymmärtää,

...

jos

...

useampi

...

funktio

...

käyttää

...

samoja

...

globaaleja

...

muuttujia.

...

Pienissä

...

ohjelmissa

...

tästä

...

ei

...

ole

...

paljoa

...

vaivaa,

...

mutta

...

isommissa

...

ohjelmissa

...

globaalien

...

muuttujien

...

käyttö

...

monimutkaistuu

...

huomattavasti.

...

Yleensä

...

funktioiden

...

paramtetreilla

...

ja

...

paluuarvoilla

...

pystyy

...

tekemään

...

kaiken

...

ilman

...

globaaleja

...

muuttujia.

{
Code Block
}
def Function(s):
    return s.upper()
     
s = "globaali merkkijono"
 
print(Function(s))
 
input("Paina Enter näppäintä lopettaaksesi...")
{code}

Joskus

...

voi

...

myös

...

olla

...

hyödyllistä

...

tehdä

...

ns.

...

pääfunktio

...

ohjelmaan

...

-

...

funktio,

...

josta

...

ohjelman

...

suoritus

...

aloitetaan

...

ja

...

jossa

...

kutsutaan

...

kaikkia

...

tarvittavia

...

alifunktioita.

...

Tästä

...

on

...

se

...

hyöty,

...

että

...

koodin

...

ollessa

...

funktiossa,

...

muuttujista

...

ei

...

tule

...

globaaleja

...

eikä

...

niitä

...

täten

...

voida

...

muutella

...

alifunktioista

...

käsin.

...

Pythonissa

...

pääfunktio

...

ei

...

ole

...

pakollinen

...

toisin

...

kuin

...

joissain

...

muissa

...

kielissä.
 
Pääfunktio tekee moduulin koodista myös helpommin uudelleenkäytettävää; toinen ohjelma voi ladata modulin ja ajaa sen koodin yksinkertaisesti kutsumalla pääfunktiota.
 
Pääfunktion suorituksessa voi käyttää apuna modulin _name_ muuttujaa. Testaamalla if rakenteessa onko muuttujan _name_ arvo "_main_" ja asettamalla pääfunktion kutsu tähän if rakenteeseen pääfunktio ajetaan vain, jos moduuli ajetaan omana ohjelmana. Näin adattaessa pääfunktio jää kutsumatta modulin ladannut ohjelma voi käyttää pääfunktiota tarpeen mukaan.

Code Block

 
Pääfunktio tekee moduulin koodista myös helpommin uudelleenkäytettävää; toinen ohjelma voi ladata modulin ja ajaa sen koodin yksinkertaisesti kutsumalla pääfunktiota.
 
Pääfunktion suorituksessa voi käyttää apuna modulin \__name_\_ muuttujaa. Testaamalla if rakenteessa onko muuttujan \__name_\_ arvo "__main__" ja asettamalla pääfunktion kutsu tähän if rakenteeseen pääfunktio ajetaan vain, jos moduuli ajetaan omana ohjelmana. Näin adattaessa pääfunktio jää kutsumatta modulin ladannut ohjelma voi käyttää pääfunktiota tarpeen mukaan.

{code}
def main():
    s = "ei-globaali merkkijono"
    print(s.upper())
 
if __name__ == "__main__":
    main()
    input("Paina Enter näppäintä lopettaaksesi...")
{code}