2013-04-29 3 views
1

Я работаю на питоне проекта GTK, и было интересно, если это возможно, чтобы генерировать случайные имена переменных для именования объектов виджетов и возвращать их таким образом, чтобы его можно было использовать в других частях программы, как:Можно ли генерировать случайные имена переменных объекта и возвращать их из метода python? Как?

#Class AppGUI: 

def createButton(self, buttonlabel): 
    RandombuttonObjectName = gtk.Button(self.buttonlabel) 
    RandombuttonObjectName.show() 
    return RandombuttonObjectName 


#Main Program 

Button1 = AppGUI.createButton("Button 1") 
Button2 = AppGUI.createButton("Button 2") 

Любезно предложите, как достичь этого случайного назначения объектов и вернуться из класса в основную программу.

+4

... Знаете ли вы, что имя переменной не имеет ничего ** ** сделать с объектом? Предоставьте прецедент, в котором генерируются имена случайных переменных, и, возможно, кто-то может ответить вам. – Bakuriu

+0

Я думаю, что имя всегда должно ссылаться на любой объект/экземпляр любого класса. –

+1

Нет, это полностью неверно: 'a = [" some string "]'. Теперь я могу ссылаться на строку '' некоторую строку '' через 'a [0]' и отметить, что 'a' is * not * ссылка на строку. Кроме того, вы можете использовать 'locals (" a ") [0]', который не содержит имени, кроме имени встроенного. В заключение: нам не нужны имена для обозначения объектов, мы можем делать много вещей без них. Во всяком случае, я имел в виду, что имя переменной не строго связано с объектом, который он ссылается. Вы можете назначить его чему угодно: 'a = 5; a = 7', или даже удалить его 'del a'. – Bakuriu

ответ

4

Как вы его написали, createButton уже возвращает уникальные, по существу случайные ссылки на виджеты.

(Чтобы быть более точным, он возвращает себя виджеты, но я нахожу это яснее думать о них как ссылки.)