tkinter输出将字符串作为dict返回

时间:2017-03-30 09:42:37

标签: python tkinter window output

from tkinter import *
from tkinter.messagebox import showinfo

def output():

    yield 'The %s line' % ('first')
    yield '\n'
    yield 'The %s line' % ('second')


def reply():
    showinfo(title='Log size', message=(list(output())))

window = Tk()
button = Button(window, text='Get info', command=reply)
button.pack()
window.mainloop()

返回this
如何使输出看起来更好: 第一行
第二行

我试图将消息作为列表(i为输出()中的i),但结果是相同的。

1 个答案:

答案 0 :(得分:1)

你不需要清单!只需join生成器的内容为字符串:

def reply():
    showinfo(title='Log size', message=''.join(output()))

根本没有任何说法,让花括号不要打扰你。尝试打印列表:

>>> list(output())
['The first line', '\n', 'The second line']

因此,如果您真的喜欢列表,可以join返回列表:

def reply():
    showinfo(title='Log size', message=(''.join(list(output()))))

另一个注意事项,正如您所看到的那样,您可以将生成器视为列表,但它并非完全正确,请尝试以下方法:

def reply():
    gen = output()
    showinfo(title='Log size', message=''.join(gen))
    showinfo(title='Log size', message=''.join(gen))

正如您所看到的,它是某种临时列表,可让您一次取下一件物品,或者只取出一件物品。所以如果你想保留信息 - 列表是个好主意!

更多here