Как сгруппировать блок кода в Python, похожий на функцию, но без необходимости определения параметров? - PullRequest
0 голосов
/ 29 июня 2018

Как сгруппировать блок кода в python, похожий на функцию, но без необходимости определять параметры? например, блок выглядит так:

code_block(){
    c = a + b
}

Я хочу использовать его в таком коде:

a = 2
b = 3
code_block()
print(c)

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Пока переменные видны из области описания функции, вы можете определить функцию без параметров, которые могут работать с этими значениями:

x = 0
y = 1
def add():
    return x+y
print(add())

Обратите внимание, что область создает неявную копию этих значений, т. Е. Невозможно манипулировать значениями вне функции, т. Е.

x = 0
def manipulate():
    x = 1
manipulate()
print(x)

все равно вернет 0. Приятное чтение - эта статья .

0 голосов
/ 29 июня 2018

Вам нужно использовать глобальные переменные внутри вашей функции и инициализировать c

a = 2
b = 3
c = 0

def code_block():
    global a, b, c
    c = b + a

code_block()
print(c)

Из документации: Каковы правила для локальных и глобальных переменных в Python?

В Python переменные, на которые ссылаются только внутри функции, неявно глобальный. Если переменной назначено значение где-либо в пределах тело функции предполагается локальным, если явно объявлен как глобальный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...