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我的意思是,拥有类的原因是封装了某种可变状态。当然,你可以把这个函数封装在一个毫无意义的类中,这个类什么都不做,但这不是很好的编程;那太傻了。如果有一个很好的理由将其封装在一个类中,那么我们可以帮助您,但是根据您向我们展示的内容,您的函数作为一个函数似乎很好。