Найти - Пользователи
Полная версия: Помогите с переменными
Начало » Python для новичков » Помогите с переменными
1 2 3
babai
Добрый день.
Описывать все не хочу что и как делаю))) уж больно долго и муторно. Нужна помощь вот в чем, есть куча переменных с присвоиными значаниями. Нужно как-то эти переменные со значениями поместить в словарь или куда еще)) То есть ключь это имя переменной, а значение, это значение. Как это сделать?) Голову сломал. Хотелось бы с помощью цикла. Заранее спасибо!
Firik
Вручную прописывать в словарь в виде {“х: ”: х, и тд}
FishHook
a = 1
b = "vvv"
class Foo:
    pass
f = Foo()
f.a = 45
print(locals())
print(f.__dict__)
babai
Вручную прописывать я и сам бы догадался)))) Спасибо все равно.
Хочется не писать здоровееный код, написать красиво и эстетично)
Firik
babai
Вручную прописывать я и сам бы догадался)))) Спасибо все равно.Хочется не писать здоровееный код, написать красиво и эстетично)
Лучше тогда было заносить значения не в кучу переменных, а в список например. А потом уже где надо циклом этот список выводить.
babai
Тут все не так просто.)) Я сделал окно на PyQt4 в котором куча строк всяких разных. Типа форма для заполнения. И две кнопки, сохранить и отмена. Так вот нужно чтоб по нажатию кнопки сохранить вся инфа с заполненных строк сохранялась где-то, а затем перенести ее в SQL базу. Так как каждая строка имеет свое имя, то я и хотел чтоб к этому имени присваивалось значение строки и куда-то записывалось, типа словаря. А потом уже из словоря перенести данные в SQL.

def save_info(self):
        
        sql_per =dict.fromkeys(["line1", "comboBox1", "line2", "comboBox2", "comboBox3",
                  "line3", "textEdit1", "textEdit2", "line4", "line5",
                  "line6", "line7", "comboBox4"])
        for i in range(49, 55):
            sql_per["line%c" % i] = ("self.line%с.text()" % i)


Вот вам кусочек. Закоментил ту часть с которой у меня проблемы. Если с указанием индекса словаря это работает, то понятно, что переменная self.line1.text() это не строка и в этом вся беда.

Предложение с классом Foo неплохое, надо подумать как его сюда можно приклеить), спасибо!
Но может есть еще какие-то предложения?)
babai
Извините, исправил)
FishHook
Нифига не понял, но вангую, что тебе нужены стандартные функции setattr и getattr
babai
Понял, спасибо. Попробую покопать в этом направлении)))
babai
Блин, ) рядом но не то))

for i in range(49, 55):
            sql_per["line%c" % i] = getattr(c, ("line%c % i.text()"))

Мне нужно там еще метод использовать .text() для возврата текста из строки, а с какой его тут стороны подставить не понимаю. Думаю getattr сюда не подходит, потомучто это не просто переменная. Или может я чайник чего-то не так делаю?)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB