Я пытаюсь создать функцию, которая при импорте и последующем вызове проверяет и изменяет кортеж. Я хотел бы иметь возможность назвать это несколько раз. Однако у меня просто есть функция, возвращающая новую переменную, потому что я не могу найти способ изменить переменную на месте.
Вот мои примеры с двумя файлами, как я бы хотел, чтобы это работало:
**modifier.py**
import variable
def function(new_string):
if new_string not in variable.tuple:
variable.tuple = new_string, + variable.tuple
**variable.py**
import modifier
tuple = ('one','two',)
modifier.function('add this')
modifier.function('now this')
#--> tuple should now equal ('now this', 'add this', 'one', 'two',)
Однако сейчас я должен сделать это:
**modifier.py**
def function(tuple_old, new_string):
if new_string not in tuple_old:
return new_string, + tuple_old
**variable.py**
import modifier
tuple = ('one','two',)
tuple = modifier.function(tuple, 'add this')
tuple = modifier.function(tuple, 'now this')
#--> tuple now equals ('now this', 'add this', 'one', 'two',)
Это намного грязнее. Прежде всего, я должен передать старое значение кортежа и получить возвращаемое значение вместо прямой замены кортежа. Это работает, но это не СУХОЙ, и я знаю, что должен быть способ сделать это чище.
Я не могу использовать списки, потому что на самом деле это функция обновления моего промежуточного программного обеспечения в моем файле настроек django. Также у меня нет , чтобы иметь функцию для другого файла, но я также думаю, что это должно быть возможно.