2017-01-29 5 views
0

Я изучаю Python и пытаюсь понять, как отправить многозначные значения следующей функции после возврата значения из первой функции? Также необходимо использовать main() в Python для вызова нескольких функций?Передача значения из одной функции в другую в Python

В следующем коде я хотел бы передать как acc_name, так и rg_name функции stop().

У меня есть следующий упрощенный код, где логика работает так, как ожидалось, поэтому не включала это, поскольку я просто хочу понять рабочий процесс кода.

def handle(event, context): 
     #code logic 
     return acc_name, rg_name 
    def stop(acc_name, rg_name): 
     #code logic 
    return sg_id 

ИЛИ

def handle(event, context): 
     #code logic 
     return acc_name, rg_name 
    def stop(x,y): 
     #code logic 
    return sg_id 

    def main(): 
     x,y = handle(event, context) 
     stop(x,y) 

Я newbiew на Python, мой код может иметь расхождения с концепцией. Использование Python 2.7

Любая помощь будет оценена по достоинству. Заранее спасибо

+0

Вы никогда не называют 'stop' в первой порции. – Carcigenicate

+0

В чем проблема со вторым куском? Кажется, он делает то, что вы хотите. –

+0

Кроме того, непонятно, что вы даже спрашиваете здесь. Я вижу только один вопрос здесь, касающийся 'main', и неясно, что вы имеете в виду« если main не используется ». – Carcigenicate

ответ

1

Я собираюсь предположить, что вы спрашиваете, как передать несколько аргументов из функции А в функцию Б, не сохраняя аргументы между двумя вызовами функций, как в двух фрагментах. Так как избежать:

x, y = functionA() 
functionB(x, y) 

Это можно сделать путем распаковки аргументов here's the docs for the feature. Вы можете сделать это по телефону:

functionB(*functionA()) 

или в вашем случае:

stop(*handle(event, context)) 
+0

@ user1725651 Я просто добавлю, что, хотя это удобный ярлык, вы можете обнаружить, что ваш код более читабельен в более длинной, более явной форме. Brevity! = Более читаемый во многих случаях. Попробуйте оба и посмотрите, что лучше читает. – Carcigenicate

+0

@Carcigenicate, я запомню это, спасибо – user1725651

Смежные вопросы