Как сделать так, чтобы только часть кода была доступна в другом файле?

Создадим файл test.py и напишем в его этот код:

x = 123
def f(a):
    global x
    return a + x

Как сделать так, чтобы в условном файле test2.py был доступ только к функции f(), но при этом при её вызове не должна выводиться ошибка, что переменной x не существует?


Ответы (2 шт):

Автор решения: Zailox
  1. Оба файла должны быть в 1 директории
  2. Импортируйте test в test2
from test import x, f

Либо (чтобы сразу всё импортировать)

from test import *

Готово.

→ Ссылка
Автор решения: Veliaraft

Дополню ответы третьим способом. Также импортировать функцию как и ранее, но с одним нюансом - избавиться от глобалки, а x указать в параметрах функции в качестве значения по умолчанию:

def f(a, x = 123):

В таком случае x можно будет при вызове функции указать вторым аргументом. При передаче одного аргумента, в вызов функции f(), переменная x будет использовать значение по умолчанию, указанное в голове (инициализации) функции.

→ Ссылка