Ниже приведен пример ES6 того, как вы можете получить доступ к свойству объекта, используя имя свойства, которое было динамически сгенерировано путем объединения двух строк.
var suffix = " name";
var person = {
["first" + suffix]: "Nicholas",
["last" + suffix]: "Zakas"
};
console.log(person["first name"]); // "Nicholas"
console.log(person["last name"]); // "Zakas"
Это называется именами вычисленных свойств
Я пытаюсь евангелизировать в направлении ооо подхода ... так что посмотрите на сценарий ниже
import tkinter as tk
class App(tk.Frame):
def __init__(self,):
super().__init__()
self.master.title("Hello World")
self.option =tk.IntVar()
self.option.set(2)
self.questions = {0:"Do you like apples?",
1:"How about peaches?",
2:"I like peaches too.",
3:"Have you tried mango?",
4:"Great",
5:"End of the questions."}
self.which = tk.IntVar()
self.which.set(0)
self.init_ui()
def init_ui(self):
self.pack(fill=tk.BOTH, expand=1,)
f = tk.Frame()
self.question = tk.Label(f, text = self.questions[0])
self.question.pack()
ops = ('Yes','No',)
for index, text in enumerate(ops):
tk.Radiobutton(f,
text=text,
variable=self.option,
command=self.callback,
value=index,).pack(anchor=tk.W)
w = tk.Frame()
tk.Button(w, text="Print", command=self.callback).pack()
tk.Button(w, text="Reset", command=self.on_reset).pack()
tk.Button(w, text="Close", command=self.on_close).pack()
f.pack(side=tk.LEFT, fill=tk.BOTH, expand=0)
w.pack(side=tk.RIGHT, fill=tk.BOTH, expand=0)
def callback(self):
#print(self.option.get())
if self.which.get()==0:
if self.option.get() == 0:
self.which.set(4)
else:
self.which.set(1)
elif self.which.get()==1:
if self.option.get() == 0:
self.which.set(2)
else:
self.which.set(3)
else:
self.which.set(5)
a = self.questions[self.which.get()]
self.question.config(text=a)
self.option.set(2)
def on_reset(self):
self.which.set(0)
self.option.set(2)
a = self.questions[self.which.get()]
self.question.config(text=a)
def on_close(self):
self.master.destroy()
if __name__ == '__main__':
app = App()
app.mainloop()
Спасибо, что нашли время ответить. Я попробовал ваш вариант и не смог как-то заставить его работать.
Я пытался вставить вложенные операторы if в кодовый блок def Enter_presssed (event), и он работает до определенного момента. Он распознает первое «если» и последнее «еще», но не промежуточные и другие между ними.
Разве программа не должна видеть и использовать каждый новый input_get после нажатия Return в качестве ответа на последний вопрос, отображаемый в виджете «Текст»?