Если я явно добавлю имя базы данных, она будет работать.
Вы подразумеваете, что хотите создать переменные на лету? Как Ваша программа будет знать, как сослаться на них, если они динамично создаются?
Кортежи имеют длины, точно так же, как списки. Совершенно допустимо сделать что-то как:
total_columns = len(the_tuple)
Можно также преобразовать кортеж в список, хотя нет никакого преимущества для выполнения поэтому, если Вы не хотите начать изменять результаты. (Кортежи не могут быть изменены; списки могут.), Но так или иначе преобразовывание кортежа к списку тривиально:
my_list = list(the_tuple)
Существуют способы создать переменные на лету (например, с eval
), но снова, как Вы знали бы, как обратиться к ним?
Я думаю, что необходимо разъяснить точно, что Вы пытаетесь сделать здесь.
Можно использовать звездочку для распаковки переменной длины. Например:
foo, bar, *other = funct()
Это должно поместить первый объект в foo
, второе в bar
, и все остальные в other
.
Обновление: Я забыл упоминать, что это - Python 3.0, совместимый только.