2016-11-24 2 views
0

Ich habe zwei Funktionen f1 und f2 innerhalb einer Klasse.Aufruf eines Parameters einer Funktion in einem anderen

class Ex(): 
    def f1(self,a): 
     ... 

    def f2(self) 
     print(a) 

ex = Ex() 
ex.f1(10) 
ex.f2() 

Was ich will, ist als Ausgabe dieses Codes zu erhalten ein, „10“. Also, was ist der einfachste Weg, um den Parameter ein von f1 in f2 zu "übertragen", und drucken Sie es dann?

+0

Check out '** kwargs' – kilojoules

+0

Können Sie mehr erklären, was Sie erreichen möchten? – ettanany

+0

Lassen Sie uns das ausarbeiten: Sie sollten keinen Parameter einer Funktion aufrufen. Vielleicht möchten Sie den Standardwert eines bestimmten Parameters der 'function1' Funktion erhalten? – RomanPerekhrest

Antwort

0

Es gibt mehrere Möglichkeiten, dies zu tun. Eine Möglichkeit wäre, einen „Setter“ in Ihrer Klasse zu machen:

class Ex(): 
    a = None # deafult value 
    def function_1(self,a): 
     Ex.a = a 
     ... 
    def function_2(self) 
     print(Ex.a) 

zB:

>>> class foo: 
    a = None 
    def f(self, a): 
     foo.a = a 
    def b(self): 
     print(foo.a) 


>>> f = foo() 
>>> f.f(12) 
>>> f.b() 
12 
>>> 

jedoch, was ich vorschlagen, dass Sie stattdessen tun, wird der Rückgabewert von function_1() zu function_2() weitergeben müssen:

class Ex(): 
    def function_1(self,a): 
     ... 
     ... 
     return a 
    def function_2(self, a) 
     print(a) 
... 
... 
ex = Ex() 
a = ex.function_1() 
ex.function_2(a) 
Verwandte Themen