Форум сайта python.su
0
Господа кодеры!
Не могли бы вы мне подсказать как решить проблему. Вот например есть код:
def sum(): Sum = 5+5 Div = 100/25 Mult = 2*2 print Sum, Div, Mult sum() def lol(): print Sum, Div, Mult lol()
Отредактировано Protoss (Ноя. 25, 2012 17:21:26)
Офлайн
20
Необходимо либо использовать глобальные переменные (global variables), либо возвращать результаты вычислений из функций и подавать их на вход других функций в качестве аргументов. Первое кажется проще, но второе правильнее.
x = 5
y = 8
def doSum(a, b):
sumResult = a + b
return sumResult
sumResult = doSum(x, y) # В переменную sumResult вернули результат сложения
def display(something):
print something
display(sumResult) # Отправили sumResult в функцию display, чтобы она вывела ее на экран
Отредактировано Soteric (Ноя. 26, 2012 09:41:09)
Офлайн
16
Soteric, зачем же перекрывать функцию sum переменной?
Офлайн
20
Исправил
Офлайн
Не очень хорошая идея затенять имена built-in functions, в данном случае sum.
Офлайн
20
Спасибо, поправил :)
Офлайн
0
Спасибо большое, а если у меня больше, чем одна переменная, то я могу передать в функцию 12 параметров?
Офлайн
20
Можно передать и 12 параметров. Но, как правило, если возникает такая необходимость, то это повод задуматься а все ли хорошо.
Офлайн
Для этого существуют списки, кортежи, словари… Вот Вам простейший пример, демонстрирующий разные способы передачи параметров функции
>>> def func(x, *y, **z): ... print x ... print y ... print z ... >>> func([1, 2, 3, 4], 2, 3, a=4, b=5) [1, 2, 3, 4] (2, 3) {'a': 4, 'b': 5} >>>
Офлайн
0
Спасибо большое всем
Офлайн