Python 如何将此函数转换为类?

Python 如何将此函数转换为类?,python,class,zelle-graphics,Python,Class,Zelle Graphics,我想将这段代码转换成一个类,在这个类中,我可以使用同一个类生成其他矩形,但只需切换 def appBox(win1): appBox=Rectangle(Point(4,15), Point(11,13)) appBox.setOutline("darkorange2") appBox.setFill("white") appLabel=Text(Point(7.5,14),"Beats By Cuse") appLabel.setSize(35)

我想将这段代码转换成一个类,在这个类中,我可以使用同一个类生成其他矩形,但只需切换

def appBox(win1):
    appBox=Rectangle(Point(4,15), Point(11,13))
    appBox.setOutline("darkorange2")
    appBox.setFill("white")
    appLabel=Text(Point(7.5,14),"Beats By Cuse")
    appLabel.setSize(35)
    appLabel.setFace("courier")
    appLabel.setStyle("bold italic")
    appLabel.setFill("darkorange2")
    appBox.draw(win1)
    appLabel.draw(win1)
    return appBox, appLabel

您不是在问我如何向这个函数传递参数,以便动态更改输出吗

def function(arg1=1.0,arg2=1.0,arg3=1.0):
    return arg1 * arg2 * arg3

这里有一个粗略的例子,可以把它转换成一个类,让你写出大量的盒装文本。在这种情况下,新的
AppBox
类是包含
标签的
矩形的子类:

from graphics import *

class AppBox(Rectangle):
    def __init__(self, p1, p2, text):
        super().__init__(p1, p2)

        self.text = text
        self.setOutline("darkorange2")
        self.setFill("white")

        midpoint = Point((p1.getX() + p2.getX()) / 2, (p1.getY() + p2.getY()) / 2)

        self.label = Text(midpoint, self.text)
        self.label.setSize(18)
        self.label.setFace("courier")
        self.label.setStyle("bold italic")
        self.label.setFill("darkorange2")

    def draw(self, graphwin):
        super().draw(graphwin)
        self.label.draw(graphwin)

beats = AppBox(Point(15, 15), Point(185, 35), "Beats By Cuse")

jeans = AppBox(Point(200, 60), Point(365, 80), "Jeans By Levi")

win = GraphWin(width=450, height=225)

beats.draw(win)
jeans.draw(win)

win.getMouse()
win.close()
更好的实现可能是只向AppBox
构造函数提供一个(中心)点,并让它根据文本长度、字体大小等计算矩形点


类携带状态。您希望该类携带什么状态?我猜def _uinit _;()如果可以的话-Silvio Mayolow我的意思是,拥有类的原因是封装了某种可变状态。当然,你可以把这个函数封装在一个毫无意义的类中,这个类什么都不做,但这不是很好的编程;那太傻了。如果有一个很好的理由将其封装在一个类中,那么我们可以帮助您,但是根据您向我们展示的内容,您的函数作为一个函数似乎很好。