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

...

Pythonissa

...

funktiot

...

ovat

...

aivan

...

kuin

...

muut

...

muuttuja

...

tyypit,

...

eli

...

niitä

...

voi

...

sijoittaa

...

muuttujiin.

...

Tästä

...

johtuen

...

funktioita

...

voi

...

välittää

...

esim.

...

parametreina

...

muille

...

funktioille

...

tai

...

säilöä

...

kokoelmaan,

...

josta

...

niitä

...

voidaan

...

kutsua

...

halutulla

...

tavalla.Avainsanan

...

def

...

avulla

...

tehdyn

...

funktion

...

tunniste

...

on

...

def

...

avainsanan

...

jälkeen

...

oleva

...

nimi;

...

jättämällä

...

parametrilistauksen

...

pois,

...

tunnisteen

...

voi

...

sijoittaa

...

toiseen

...

muuttujaan.
 
Tässä esimerkissä tehdään kolme funktiota, jotka sijoitetaan listan alkioiksi ja kutsutaan niitä erilaisilla parametreilla.

Code Block

 
Tässä esimerkissä tehdään kolme funktiota, jotka sijoitetaan listan alkioiksi ja kutsutaan niitä erilaisilla parametreilla.

{code}
def Square(x):
    return x * x
 
def Cube(x):
    return x * x * x
 
def SquareOfSubtraction(x, y):
    return (x - y) ** 2
 
L = [Square, Cube, SquareOfSubtraction]
 
print(L[0](7))
print(L[1](3))
print(L[0](5))
print(L[2](12, 7))
 
input("Paina Enter-näppäintä lopettaaksesi...")
{code}

Avainsana

...

lambda

...

on

...

toinen

...

tapa

...

tehdä

...

funktioita.

...

Sen

...

avulla

...

tehdää

...

ns.

...

lambda

...

lauseke,

...

joka

...

on

...

käytännössä

...

funktio

...

ilman

...

tunnistetta,

...

mutta

...

jonka

...

voi

...

sijoittaa

...

muuttujaan

...

niinkuin

...

muutkin

...

funktiot.

...

Parametrit

...

listataan

...

pilkulla

...

erotettuna

...

avainsanan

...

lambda

...

jälkeen,

...

joiden

...

jälkeen

...

kaksoispiste,

...

jota

...

puolestaan

...

seuraa

...

ilmaus,

...

jonka

...

arvon

...

funktio

...

palauttaa

...

-

...

avainsanaa

...

return

...

ei

...

käytetä

...

tässä.
 
Tässä edellinen esimerkki käyttäen lambda lausekkeita.

Code Block

 
Tässä edellinen esimerkki käyttäen lambda lausekkeita.

{code}
Square = lambda x: x * x
Cube = lambda x: x * x * x
SquareOfSubtraction = lambda x, y: (x - y) ** 2
 
L = [Square, Cube, SquareOfSubtraction]
 
print(L[0](7))
print(L[1](3))
print(L[0](5))
print(L[2](12, 7))
 
input("Paina Enter-näppäintä lopettaaksesi...")
{code}

Koska

...

lambda

...

on

...

lauseke,

...

se

...

ei

...

voi

...

sisältää

...

usean

...

rivin

...

koodiosiota

...

niinkuin

...

avainsanaa

...

def

...

käytettäessä;

...

samasta

...

syystä

...

se

...

voi

...

koodissa

...

esiintyä

...

paikoissa,

...

missä

...

def

...

rakenne

...

ei

...

kuten

...

listan

...

alkiona.

...

Tässä

...

edellinen

...

esimerkki

...

sijoittaen

...

lambda

...

lausekkeet

...

suoraan

...

listan

...

alkioiksi

...

sijoittamatta

...

niitä

...

ensin

...

muuttujiin.

{
Code Block
}
L = [lambda x: x * x,
     lambda x: x * x * x,
     lambda x, y: (x - y) ** 2]
 
print(L[0](7))
print(L[1](3))
print(L[0](5))
print(L[2](12, 7))
 
input("Paina Enter-näppäintä lopettaaksesi...")
{code}

Vaikka

...

lauseke

...

asettaakin

...

rajoitteita

...

pitempien

...

funktioiden

...

määrittelyssä

...

voi

...

avainsana

...

lambdan

...

avulla

...

tehdä

...

samat

...

funktiot

...

kuin

...

avainsanalla

...

def.

...

Normaalisti

...

kumminkin

...

on

...

parempi

...

käyttää

...

avainsanaa

...

def

...

monimutkaisten

...

ja

...

pitkien

...

lausekkeiden

...

sijaan.

...

Silti

...

lambda

...

lauseke

...

toimii

...

hyvin,

...

jos

...

on

...

tarvetta

...

määritellä

...

pieniä

...

koodin

...

pätkiä

...

ohjelman

...

eri

...

osille

...

suoritettavaksi

...

kuten

...

ns.

...

takaisinkutsu

...

funktioissa.