2017-02-01 17 views
-1

Мой код выглядит что-то вродеДоступ вернулся параметр методом питона

Class Some_class(): 

    def _functionA(): 
     # body 
     return parameterA, parameterB 

    def second_function(): 
     var1 = parameterB 

Как я могу получить доступ к parameterB, возвращаемый первой функции в секунду?

+2

Ну в этом случае возвращается ** кортеж **, поэтому вы можете получить к нему доступ с помощью 'return_value [1]'. –

+1

Вы не можете, если 'second_function' на самом деле не называет первую функцию – Sayse

+0

, почему бы и нет, вы выходите параметром B? – Qubix

ответ

2

Python интерпретирует:

return parameterA, parameterB 

как:

return (parameterA, parameterB) 

так что вы вернуть кортеж. Вы можете получить i-й элемент кортежа (индекс на основе 0), написав return_value[1]. Так что в вас случае, это должно быть что-то вроде:

def second_function(): 
    var1 = self._functionA()[1]

Вы также можете использовать назначение последовательности, например:

def second_function(): 
    _,var1 = self._functionA()

здесь, таким образом, написать var,iable = expression. В случае expression - последовательность с длиной, равной числу переменных, первый элемент в последовательности присваивается var, второй - iable и т. Д.