【发布时间】:2017-08-25 20:05:15
【问题描述】:
关于 OOP,尤其是 Python,我有一个问题。假设我有,例如,priorities.py - 一个简单的 GUI 程序来管理优先级,它有三个类:Priority、Client、GuiPart:
# priorities.py
# GUI program to manage priorities
from tkinter import *
class Priority:
pass
class GuiPart:
def __init__(self):
self.root = self.createWindow()
def createWindow(self):
root = Tk()
root.resizable(width = False, height = False)
root.title("Priorities")
return root
def display(self):
Label(self.root,
text = "testes").grid(row = 0, column = 1)
class Client:
pass
def main():
g = GuiPart()
g.display()
root = g.root.mainloop()
main()
我应该把 def main() 放在任何类之外,还是应该把它放在 Client 类中?
【问题讨论】:
-
我不确定风格指南是怎么说的(或其他人的想法),但我个人不使用
def main(),我使用if __name__ == '__main__:并将其放在底部任何类之外的文件(就像你正在做的那样)。 -
除非你的代码不起作用或者你想提高它的效率,这个问题更适合代码审查。
-
@RocketHazmat 将
main定义为函数也可以更轻松地测试该代码。 -
@RocketHazmat
def main():和if __name__ == '__main__:并不相互排斥。if __name__ == '__main__: main()很常见,正如 @chepner 所说,让在其他地方测试main变得容易。 -
@wraith46 Rocket Hazmat 说他不使用
main(),他使用if __name__。我是说这不是非此即彼;您可以将所有main功能放在一个函数中,然后从if __name__调用该函数