2014-10-09 28 views
-3

我需要一種方法將代碼分解爲更小的塊,將這些代碼塊轉換爲函數,然後從main中調用函數。如何將代碼分解爲更小的塊,將這些代碼塊轉換爲函數,然後在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() 
+3

這樣的問題屬於http://codereview.stackexchange.com/ – 2014-10-09 22:44:47

回答

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() 
相關問題