def f1(): l = [1, 2, 3, 4, 5] return l def f2(): l.append(1) return l print(f2())
def f1(): l = [1, 2, 3, 4, 5] return l def f2(): l.append(1) return l print(f2())
def f1(): l = [1, 2, 3, 4, 5] return l def f2(): l = f1() l.append(1) return l print(f2())
def f1(): l = [1, 2, 3, 4, 5] f2(l) return l def f2(l): l.append(1) print(f1())
def f1(): l = [1, 2, 3, 4, 5] def f2(l): l.append(1) return l print(f1())
Strightпрост практического смысла почти нету, а проблем будет больше
Или вложение объявления одной функции в объявление другой лучше избегать?
def f(): lst = [1, 2] return lst def f2(arg): lst = [3, 4] lst.extend(arg) return lst r = f() print f2(r)
vrabeyА тут как раз и получается, что r - глобальная переменная, к использованию которой я не хотел прибегать
а почему бы не передать результат выполнения 1 функции аргументом второй?

Stright
Знаю, что можно присвоить результат какой-либо глобальной переменной, но в этом случае пользоваться глобальными переменными, наверное, будет неправильно.
Strightтак не создавайте промежуточную переменную
А тут как раз и получается, что r - глобальная переменная, к использованию которой я не хотел прибегать
print f2(f())
vrabeyлишняя переменная, да и зачем?
а почему бы не передать результат выполнения 1 функции аргументом второй?
Strightа условие задания какое? может мы поможем сделать еще лучше!
когда вложенных функций получилось больше чем хотелось бы, появилась мысль, что что-то здесь не то