如何将代码分解成更小的代码块,将这些代码块转换成函数,然后在python中从main中调用函数?

2024-04-19 23:42:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一种方法将代码分解成更小的代码块,将这些代码块转换成函数,然后从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()

Tags: 方法代码mainredcanvasblackpicturebrown
1条回答
网友
1楼 · 发布于 2024-04-19 23:42:03

如果不多了解自己的目标和动机,就很难给出答案。你的意思是这样的吗?你知道吗

# 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()

相关问题 更多 >