在 Python 中,如何使"class"(作为参数传递时)与 "class.attribute" 相同?



所以,我目前正在制作一个自定义的Tkinter模块/API,主要是为了更好地理解Tkinter,但我遇到了一个问题。假设我有以下代码:

import Tkinter as tk
Class Window(object):  # Equivalent of Tkinters Tk() in my module
    def __init__(self):
        self.root = tk.Tk()
        ...

Class Label(object):  # Equivalent of Tkinters label widget in my module
    def __init__(self, master):
        self.label = tk.Label(master, text="Hello world!")
        ...

当我创建标签小部件时,我该怎么做

master = Window()
label = Label(master)

而不必做

master = Window()
label = Label(master.root)

我知道我可以将tk.Tk继承到我的 window 类中,但我只是好奇是否有不同的方法。我做了一些研究,似乎它可能与其中一种带有前导和尾随双下划线的内置方法有关(不确定它们叫什么),但我不知道其中大多数是做什么的。

附言对不起,标题不好,不知道如何用简短的句子来描述它:P

你可以这样写:

self.label = tk.Label(master.root, text="Hello world!")

但正如布莱恩和保罗所说,继承自tk。Tk是最好的选择。

最新更新