Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何使这个python海龟代码更小,使它成为一个类?_Python_Recursion_Turtle Graphics - Fatal编程技术网

我如何使这个python海龟代码更小,使它成为一个类?

我如何使这个python海龟代码更小,使它成为一个类?,python,recursion,turtle-graphics,Python,Recursion,Turtle Graphics,我正在编写一段代码,递归地绘制一个非常简单的“树”。这是一组函数和一些“设置”行,但是,我想把它集成到一个更大的程序中,所以我想把它放在一个类下,然后调用它来绘制树 我的问题是,作为python新手,我该如何做?我读到了关于\uuuu init\uuuu和self.()的文章,但是我的代码似乎非常模糊,到处都是,而且不够紧凑,无法整齐地将其转换为类 我应该如何首先减少代码行数,使其完全适合函数 import turtle as t import random def arbre(branche,

我正在编写一段代码,递归地绘制一个非常简单的“树”。这是一组函数和一些“设置”行,但是,我想把它集成到一个更大的程序中,所以我想把它放在一个类下,然后调用它来绘制树

我的问题是,作为python新手,我该如何做?我读到了关于
\uuuu init\uuuu
self.(
)的文章,但是我的代码似乎非常模糊,到处都是,而且不够紧凑,无法整齐地将其转换为类

我应该如何首先减少代码行数,使其完全适合函数

import turtle as t
import random
def arbre(branche,t):
    if branche > 5:
        t.forward(branche)
        t.right(20)
        arbre(branche-15,t)
        t.left(40)
        arbre(branche-15,t)
        t.right(20)
        t.backward(branche)
def main():

    t.up()
    t.down()
    t.color("green")
    arbre(90,t)

for k in range(0,17):
    t.left(10)
    main()

t.right(80)
t.backward(50)
t.penup()
t.forward(25)
t.pendown()
t.right(60)
for k in range(0,11):
    t.left(10)
    main()

无论代码的长度如何,您都可以编写类,但您可以这样减少代码:

import turtle as t
t.tracer(2,1) # pour accelerer le dessin
def arbre(branche,t):
    if branche > 5:
        t.forward(branche)
        t.right(20)
        arbre(branche-15,t)
        t.left(40)
        arbre(branche-15,t)
        t.right(20)
        t.backward(branche)

def main( n ):
    for k in range( n ):
        t.left(10)
        arbre(90,t)

t.color("green")
main(17)

t.right(80)
t.backward(50)
t.penup()
t.forward(25)
t.pendown()
t.right(60)

main(10)

你似乎误解了什么是课堂。作为一个类,这些代码实际上都没有意义。此外,在函数或类中可以输入多少代码是没有限制的,这取决于类的用途:它有哪些对象和方法?哪些部分是参数化的?这个“主要”方法是课程的一部分吗?初始化会带来什么?调用程序执行哪些部分?