Xecuter Skrevet 6. april 2008 Del Skrevet 6. april 2008 (endret) class SomeClass: def someFunction(self): loads of if's and what's ^^ som kommer fram til self.someFunction() Er den god python? Eller er det lurest å sette inn en while-loop og break i stedet? Endret 6. april 2008 av Xecuter88 Lenke til kommentar
CoolBeer Skrevet 6. april 2008 Del Skrevet 6. april 2008 Jeg bruker endel recursive calls selv når jeg har bruk for det(riktignok c++, men er vel det samme). Ser ikke egentlig problemet med det, sparer endel kode gjør det jo også. Lenke til kommentar
genstian Skrevet 6. april 2008 Del Skrevet 6. april 2008 Nei, er helt greit at en fungsjon kaller seg selv, ofte med et annet argument istede for å ha lange loops osv. Lenke til kommentar
Xecuter Skrevet 6. april 2008 Forfatter Del Skrevet 6. april 2008 Flott! Er mye enklere å ha en slik, enn å begynne å tulle med looper o.l. Lenke til kommentar
argonaut Skrevet 7. april 2008 Del Skrevet 7. april 2008 class SomeClass: def someFunction(self): loads of if's and what's ^^ som kommer fram til self.someFunction() Er den god python? Eller er det lurest å sette inn en while-loop og break i stedet? Kult! Rekursjon er ofte en elegant og naturlig formulering av algoritmer, som ellers ville blitt veldig hårete med imperative løkker. Man bør være litt obs. på ytelse og ressursbruk, da dype nestinger av rekursive kall ta endel ressurser i form av: 1. Tid: for å allokere en stakkramme (eng: stack frame) for hver instanse av funksjonskallet. 2. Plass: minnebruken til mange stakkrammer (gir f.eks. runtime exceptions i de fleste språk, hvis man uttømmer stakken, den klassiske "stack overflow" o.l.). Heldigvis har de fleste moderne kompilatorer optimaliseringer som gjøre at man ikke trenger å bekymre seg særlig, bl.a. fjerning av halerekursjon (eng: tail recursion), som gjør om mange av de enkleste formene til en løkke internt. Lenke til kommentar
Xecuter Skrevet 7. april 2008 Forfatter Del Skrevet 7. april 2008 Heldigvis har de fleste moderne kompilatorer optimaliseringer som gjøre at man ikke trenger å bekymre seg særlig, bl.a. fjerning av halerekursjon (eng: tail recursion), som gjør om mange av de enkleste formene til en løkke internt. Men python kompileres ikke? Pythonkode blir tolket (god norsk?(interpreted)) når koden kjøres. Lenke til kommentar
genstian Skrevet 7. april 2008 Del Skrevet 7. april 2008 Ja, men tror at f.eks Psycho gjør slike opptimaliseringer på byte koden. Lenke til kommentar
steingrim Skrevet 7. april 2008 Del Skrevet 7. april 2008 Man kan fint gjøre optimalisering av hale-kall i en interpreter også, men Python sin gjør det IKKE. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå