首页 > 解决方案 > 如何使用 Python 中的调用方方法将对象传递给类中的函数?

问题描述

我正在重新创建一个我一直在研究的程序,该程序以前使用 Tkinter 设置的变量。我以前并没有真正使用过对象,现在我正在尝试。我尝试过观看不同的视频和查找指南,但没有任何运气。目标是使我的程序尽可能模块化,使用单独的 .py 文件进行计算和 GUI 功能。我不确定使用对象是否适合我正在做的事情。

我无法将 windowsSettings 对象传递给 createWindow 方法。我收到一条错误消息,提示“ init () 缺少 3 个必需的位置参数:'width'、'height'、'title' 和 'state'”

import tkinter as tk
from tkinter import ttk
tkRoot = tk.Tk()
tkRoot.withdraw()


class MainWindow:
    def __init__(self, width, height, title, state):
        self.width = width
        self.height = height
        self.resolution = str(width) + 'x' + str(height)
        self.title = title
        self.state = state

    def createWindow(self):
        tkRoot.geometry(self.resolution)
        tkRoot.title(self.title)


windowSettings = MainWindow(800, 600, 'Program Name', 'zoomed')

caller = MainWindow(windowsSettings)
caller.createWindow(windowSettings)


tk.mainloop()

标签: pythonclassobjecttkinterparameter-passing

解决方案


好像您是 OOP 的新手

将您的代码修复到下面。

windowSettings = MainWindow(800, 600, 'Program Name', 'zoomed')
windowSettings.createWindow()

一旦使用 windowSettings = MainWindow(..) 创建,windowSettings 就成为 MainWindow 的一个实例。

您可以在线找到大量关于 OOP 的文章


推荐阅读