Functies

Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Functies

Marc Stevens
Hoi allemaal,

Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?
Ik heb dit simpel programmaatje geschreven, waarvan ik denk dat ik dat probleem ooit een tegen zal komen in een groter programma.

def functie_een(x):
    print(x)
def functie_twee(x):
    y=x+3
    print y

functie_een(10)
functie_twee(x)


_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|

Re: Functies

Floris van Manen

> On 3 Jul 2018, at 19:56, Marc Stevens <[hidden email]> wrote:
>
> Hoi allemaal,
>
> Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?
> Ik heb dit simpel programmaatje geschreven, waarvan ik denk dat ik dat probleem ooit een tegen zal komen in een groter programma.
>
> def functie_een(x):
>     print(x)
> def functie_twee(x):
>     y=x+3
>     print y
>
> functie_een(10)
> functie_twee(x)
>
> _______________________________________________
> Python-nl mailing list
> [hidden email]
> https://mail.python.org/mailman/listinfo/python-nl

lokale variabelen bestaan alleen lokaal

def functie_een(x):
    print(x)

def functie_twee(x):
    y = x + 3
    print y

x = 20
functie_een(10)
functie_twee(x)

10
23



_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Functies

Nederlands mailing list
In reply to this post by Marc Stevens

m: 06 5060 4033

Op 3 juli 2018 om 19:56 schreef Marc Stevens <[hidden email]>:
Hoi allemaal,

Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?
Ik heb dit simpel programmaatje geschreven, waarvan ik denk dat ik dat probleem ooit een tegen zal komen in een groter programma.

def functie_een(x):
    print(x)
def functie_twee(x):
    y=x+3
    print y

functie_een(10)
functie_twee(x)


_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl



_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|

Re: Functies

Michiel Overtoom
In reply to this post by Marc Stevens
Hoi Marc,

> Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?

Nee, dat kan niet. Een bepaalde functie kan niet in de variabelen van een andere functie kijken. Programma's zouden snel een onbeheersbare wanboel worden als functies zomaar variabelen in andere functies konden overschrijven!

Je kunt wel *waarden* van variabelen 'overhevelen' van de ene functie naar de andere, maar met 'overhevelen' zou dan bedoeld worden dat een tweede functie het resultaat van een eerste functie verder verwerkt.

Stel je hebt een functie die een temperatuur in Fahrenheit omrekent naar Celcius. En je hebt een andere functie die een temperatuur (in Celcius) beoordeelt of het geschikt is als temperatuur voor badwater:


  def fahrenheit_to_celcius(x):
      return (x - 32.0) * (5.0 / 9.0)


  def badwater_oordeel(temp):
      if temp < 37:
          return "Het badwater is te koud"
      elif temp > 39:
          return "Het badwater is te warm"
      else:
          return "Het badwater is goed"


Die zou je dan als volgt kunnen combineren:


  f = 100
  c = fahrenheit_to_celcius(f)
  print badwater_oordeel(c)


De functie 'badwater' borduurt verder op wat de functie 'fahrenheit_to_celcius' opleverde. Je zou kunnen zeggen dat de temperatuur in celcius 'overgeheveld' is ;-)



Groets,

--
"There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors." - Jeff Atwood

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|

Re: Functies

Jan Ripke
In reply to this post by Marc Stevens
Misschien een flauw antwoord, maar daar voor zijn functies verzonnen die een waarde teruggeven.
Op deze manier kun je het resultaat van de ene functie doorgeven aan de andere functie en houdt je nog belangrijker de boel gestructureerd

Vervang je laatste print statements door return y en je geeft waarden terug.

Op di 3 jul. 2018 20:17 schreef Marc Stevens <[hidden email]>:
Hoi allemaal,

Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?
Ik heb dit simpel programmaatje geschreven, waarvan ik denk dat ik dat probleem ooit een tegen zal komen in een groter programma.

def functie_een(x):
    print(x)
def functie_twee(x):
    y=x+3
    print y

functie_een(10)
functie_twee(x)

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl

_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl
Reply | Threaded
Open this post in threaded view
|

Re: Functies

Guido Kollerie-2
In reply to this post by Marc Stevens
On Tue, Jul 3, 2018 at 6:17 PM Marc Stevens <[hidden email]> wrote:

Hoi Marc,

Sorry voor de late reactie; ik lees deze mailing list bijna nooit

> Misschien is het onzinnig en simplistisch, maar ik vroeg me af of variabelen binnen een functie kunnen worden overgeheveld naar een tweede of volgende functie?

Ja, dat kan middels een closure:

def functie_een(x):
    print(x)

    def functie_twee():
        y = x + 3
        print(y)

    return functie_twee


f2 = functie_een(10)
f2()

Dit print:

10
13

Dit werkt omdat functie_twee gedefinieerd wordt binnen functie_een en
daarmee toegang heeft tot de parameter x van functie_een.

Groeten, Guido
_______________________________________________
Python-nl mailing list
[hidden email]
https://mail.python.org/mailman/listinfo/python-nl