自定义 python 模块中的变量

我正在制作我自己的名为 zoro 的自定义 python 模块,并且我想让人们制作一个变量,并且该变量等于我模块中的一个函数,但我该怎么做呢?


我已经尝试查看其他模块(如turtle)的代码,turtle 使用了 self 参数,所以我尝试使用它,但它说TypeError: win() missing 1 required positional argument: 'self'.


我的程序代码来测试模块:


import zoro


test = zoro.win("test","black",500,500)

test.zoro.winTitle("test2")

我的模块代码:


from tkinter import *



def win(title,bg,w,h):

    root = Tk()

    root.title(title)

    root.config(bg=bg)

    root.geometry(str(w) + "x" + str(h))

    return root

def winTitle(title):

    root.title(title)

我想做这样的事情:


test = zoro.win("test","black",500,500)

test.zoro.winTitle("test2")


qq_遁去的一_1
浏览 204回答 2
2回答

收到一只叮咚

问题:你想做的事情叫做inheritance. 例如:佐罗.pyimport tkinter as tkclass App(tk.Tk):    def __init__(self, title, bg, width, height):        super().__init__()        self.title(title)        self.geometry('{}x{}'format(width, height)        self.config(bg=bg)用法import zoroclass MyApp(zoro.App):    def __init__(self):        super().__init__("test","black",500,500)        # Change title        self.title('my new title')        # Add further widgetsif __name__ == '__main__':    MyApp().mainloop()

万千封印

假设您希望您的驱动程序使用当前定义的模块,您需要一个名为rootfor的全局变量winTitle来使用。此外,返回的对象win没有名为 的属性zoro。import zorozoro.root = zoro.win("test", "black", 500, 500)zoro.winTitle("test2")也就是说,您的模块应该首先被修复以避免全局变量。from tkinter import *def win(title, bg, w, h):    root = Tk()    root.title(title)    root.config(bg=bg)    root.geometry(str(w) + "x" + str(h))    return rootdef winTitle(root, title):    root.title(title)然后你的司机看起来像import zorotest = zoro.win("test", "black", 500, 500)zoro.winTitle(test, "test2")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python