Я работаю над упражнением на python, которое требует получения возвращаемых значений функции. Вот пример кода, который связан с тем, над которым я сейчас работаю.

def main():
    x = 'the quick'
    y = 'brown fox'
    return x, y

def function1(x, y):
    if x == 'the quick' and y == 'brown fox':
        return 'jump'
    else:
        return 'lazy'

def function2():
    if a == 'jump':
        print('good boy')
    else:
        print('bad boy')

function2(*function1(*main()))

Я получаю ошибку позиционного аргумента. Как правильно вернуть строку для другой функции?

3
pythonoverflow 13 Мар 2018 в 06:53

2 ответа

Лучший ответ

Сначала вы должны указать параметры для function2: я думаю, вы хотите определить function2 следующим образом:

    def function2(a):
        if a == 'jump':
        print('good boy')
    else:
        print('bad boy')

И вы можете захотеть, чтобы funtion2 вывел «good boy», таким образом, вы можете попробовать:

function2(function1(*main()))

Который выдаст на выходе как хочешь.

0
Lei_Bai 13 Мар 2018 в 04:50

Вы не указали, что Function2() принимает какие-либо аргументы.

Я получил ваш код для запуска, указав четыре аргумента функции (используя только один):

def main():
    x = 'the quick'
    y = 'brown fox'
    return x, y

def function1(x, y):
    if x == 'the quick' and y == 'brown fox':
        return 'jump'
    else:
        return 'lazy'

def function2(a, b, c, d):
    if a == 'jump':
        print('good boy')
    else:
        print('bad boy')

function2(*function1(*main()))

Это возвращает:

bad boy
6
Joseph Farah 13 Мар 2018 в 03:55