有没有办法创建和命名对象/类,以及在同一行中运行该类的方法?

时间:2016-08-29 18:10:14

标签: python python-2.7 tkinter

我只是想清理一些代码,我想知道是否有办法创建一个新的命名对象,以及在同一行的对象类中运行一个方法。例如:

self.equipment_widgets["NumOfStagesLabelCentComp"]=tk.Label(self.parent, text="Number of Stages:", bg="white")
self.equipment_widgets["NumOfStagesLabelCentComp"].place(relx=0.5, y=260, anchor="center")

在第一行中,我将一个新的tk.Label类初始化为名为equipment_widgets的字典中的对象。在下一行中,我使用place()方法将标签对象放在我的GUI中。

如果我将.place放在第一行的末尾,则会创建一个nonetype对象。

1 个答案:

答案 0 :(得分:1)

您需要将类方法设计为可链接的,这意味着只修改对象的所有方法(而不是从对象返回信息)应以return self结束。这允许你写:

object.method1(...).method2(...).method3(...)

如果以这种方式设计place()方法,您应该可以在第一行使用它。

self.equipment_widgets["NumOfStagesLabelCentComp"]=tk.Label(self.parent, text="Number of Stages:", bg="white").place(relx=0.5, y=260, anchor="center")

请注意,Python标准类中的大多数变异方法都不可链接,它们通常会返回None。所以这种类型的编程并不是非常pythonic。