2017-11-08 2 views
1

Ich verbrachte Stunden damit, herauszufinden, wie der Wert an eine Funktion übergeben wird, die nur das ausgibt, was sie empfängt.Übergabe zurückgegebener Variablen zwischen Funktionen

fun1(50)  

def fun1(salary): 
     salary_double = salary * salary 
     salary_tax = salary 1.04 
     return salary, salary_double, salary_tax 

def fun2(): 
     print (salary, salary_double, salary_tax from fun1) 

Wie kann ich den Wert der zurückgegebenen Variablen in der Fun1 zu Fun2 übergeben?

+0

... übergeben Sie einfach die zurückgegebenen Werte von fun1 zu fun2, aber Sie müssen eine Signatur zur Verfügung stellen, die Argumente akzeptiert ... –

Antwort

3

wie fun1 braucht Argumente zu arbeiten, so funktioniert fun2. Sie können *args verwenden, um dieses variadische zu machen, oder angeben, dass es

def fun2(*args): 
    print(*args) 

def fun2(a, b, c): 
    print(a, b, c) 

jedoch an dieser Stelle jedes Mal, 3 Werte erhalten sollte sind Sie nur einen print Anruf zu duplizieren. Tun Sie dies von fun1 stattdessen.

+0

Ja, besser, denke ich, plus eins :) –

1

Lassen Sie mich wissen, ob ich die Frage hier verstanden:

def fun1(salary): 
     salary_double = salary * salary 
     salary_tax = salary * 1.04 
     return salary, salary_double, salary_tax 

def fun2(): 
    salary, salary_double, salary_tax = fun1(50) 
    print (salary, salary_double, salary_tax) 

aber Sie können direkt tun:

def fun3(): 
    for x in fun1(50): 
    print(x) 

oder

def fun3(): 
    print(fun1(50)) 

oder @ Wege Adams:

def fun4(): 
    print(*fun1(50)) 
+0

beachten Sie, dass die Ausgabe von Ihrem Das zweite Code-Snippet unterscheidet sich von den anderen. –

+0

@AdamSmith ja ... es setzt/n zwischen .. du hast Recht, ich mag mehr deinen Weg –

+0

In Wahrheit soll "mein Weg" zeigen, dass diese Methode sinnlos ist. Du könntest genauso einfach (in python3, zumindest ...) 'fun2 = print'. –

Verwandte Themen