python代码的布局

python代码的布局,python,format,Python,Format,我正在努力学习排列/定义代码的最佳方法。以下面的示例为例,我必须编写两次tkMessageBox命令。我确实尝试在getText()中创建一个def并引用它,但没有成功 因此,请提出问题 1) 如何安排代码,以便将tkMessageBox命令放在def或其他文件中,甚至在getText()中引用它 2) 考虑到最佳实践,该代码是否应该以不同的方式进行布局?如果是,如何/为什么 先谢谢你 import Tkinter as tk import tkMessageBox import base64

我正在努力学习排列/定义代码的最佳方法。以下面的示例为例,我必须编写两次tkMessageBox命令。我确实尝试在getText()中创建一个def并引用它,但没有成功

因此,请提出问题

1) 如何安排代码,以便将tkMessageBox命令放在def或其他文件中,甚至在getText()中引用它

2) 考虑到最佳实践,该代码是否应该以不同的方式进行布局?如果是,如何/为什么

先谢谢你

import Tkinter as tk
import tkMessageBox
import base64

myText = 'empty'

def getText():
    global myText
    myText = inputBox.get()
    entered = "You entered: " + myText
    encoded = "We encoded: " + base64.encodestring(myText)
    Button1 = tk.Button(root, command = tkMessageBox.showinfo("Press me", entered))
    Button1.pack()
    Button2 = tk.Button(root, command = tkMessageBox.showinfo("Press me", encoded))
    Button2.pack()
    root.destroy()

root = tk.Tk()

# Text label
simpleTitle = tk.Label(root)
simpleTitle['text'] = 'Please enter your input here'
simpleTitle.pack()

# The entry box widget
inputBox = tk.Entry(root)
inputBox.pack()

# The button widget
button = tk.Button(root, text='Submit', command=getText)
button.pack()

tk.mainloop()

我不确定您是否询问了代码,但布局/格式化Python代码的终极样式指南是。

我不确定您是否询问了代码,但布局/格式化Python代码的终极样式指南是。

您不能将tkMessageBox命令分配给一个变量吗,然后引用这个变量两次?变量可以放在您的函数中。

您不能将tkMessageBox命令分配给一个变量,并引用该变量两次吗?变量可以放在您的函数中。

删除任何重复的代码都是一个很好的做法,这是软件设计过程中的一个步骤,称为重构,另一个答案中提到了重构

在tkMessageBox示例的特定情况下,您可以这样做

command = tkMessageBox.showinfo("Press me", entered)
Button1 = tk.Button(root, command)
Button1.pack()
Button2 = tk.Button(root, command)
Button2.pack()

这将把您的命令合并到一个位置,以便以后可以轻松地对其进行维护。虽然这对您的代码示例来说很可能不是问题,但这是一个好习惯,因为它将减少必要的调用数量,从而在将来优化您的代码。

最好删除任何重复的代码,例如,这是被称为重构的软件设计过程中的一个步骤,另一个答案中提到了重构

在tkMessageBox示例的特定情况下,您可以这样做

command = tkMessageBox.showinfo("Press me", entered)
Button1 = tk.Button(root, command)
Button1.pack()
Button2 = tk.Button(root, command)
Button2.pack()

这将把您的命令合并到一个位置,以便以后可以轻松地对其进行维护。虽然这对您的代码示例来说很可能不是问题,但这是一个好习惯,因为它将减少必要的调用数量,从而在将来优化您的代码。

还值得注意的是,有一个pep8命令行实用程序,它将扫描您的源代码以查找(大多数)违反pep8的情况

pip install pep8
pep8 source_code_to_check

还值得注意的是,有一个pep8命令行实用程序,它可以扫描源代码以查找(大多数)违反pep8的情况

pip install pep8
pep8 source_code_to_check

同意,在本例中,一个变量可以工作,但如果我有两行或更多的代码,并且我不想重复它,该怎么办。我可以在def中使用def吗?在本例中,一个变量可以工作,但如果我有两行或更多的代码,并且我不想重复它,该怎么办呢。我可以在def中使用def吗?谢谢