我需要一种方法将我的代码分解成更小的块,将这些代码块转换为函数,然后从main中调用函数。
import picture
def main():
# Size of the canvas
canvaswidth = 500
canvasheight = 500
canvas = picture.Picture(canvaswidth, canvasheight)
# My color pallette
black = (0, 0, 0)
purple = (128, 0, 128)
cream = (255, 255, 240)
brown = (102,51, 0)
blue = (0, 76, 173)
red = (255, 0, 0)
yellow = (255, 255, 0)
canvas.setFillColor(brown)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
canvas.drawRectFill(175,75,100,300)
canvas.setFillColor(red)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
canvas.drawPolygonFill([175,75,225,25,275,75])
canvas.setFillColor(red)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
canvas.drawPolygonFill([175,430,200,300,250,300,275,430])
canvas.setFillColor(red)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
canvas.drawPolygonFill([125,400,150,300,175,300,175,375])
canvas.setFillColor(red)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
canvas.drawPolygonFill([275,375,275,300,300,300,325,400])
canvas.display()
main()
答案 0 :(得分:0)
如果不了解您的目的和动机,很难给出答案。你的意思是以下吗?
# Size of the canvas
canvaswidth = 500
canvasheight = 500
canvas = picture.Picture(canvaswidth, canvasheight)
# My color pallette
black = (0, 0, 0)
purple = (128, 0, 128)
cream = (255, 255, 240)
brown = (102,51, 0)
blue = (0, 76, 173)
red = (255, 0, 0)
yellow = (255, 255, 0)
def doit(canvas, fill_color, draw_method, *data):
canvas.setFillColor(fill_color)
canvas.setOutlineColor(black)
canvas.setPenWidth(3)
getattr(canvas, draw_method)(*data)
def main():
canvas = picture.Picture(canvaswidth, canvasheight)
doit(canvas, brown, 'drawRectFill', 175,75,100,300)
doit(canvas, red, 'drawPolygonFill', [175,75,225,25,275,75])
doit(canvas, red, 'drawPolygonFill', [175,430,200,300,250,300,275,430])
doit(canvas, red, 'drawPolygonFill', [125,400,150,300,175,300,175,375])
doit(canvas, red, 'drawPolygonFill', [275,375,275,300,300,300,325,400])
canvas.display()