【问题标题】:How do I make this python turtle code smaller so it becomes a class?如何使这个 python 乌龟代码更小,使其成为一个类?
【发布时间】:2016-05-04 20:39:58
【问题描述】:

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

我的问题是,刚接触 python,我该怎么做?我读到了__init__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()

【问题讨论】:

  • 您似乎误解了类的实际含义。作为一个类,这些代码实际上没有任何意义。此外,您可以将多少代码放入函数或类中是没有限制的。
  • 这取决于你对这个类的目的:它有什么对象和方法?哪些部分是参数化的?这个“主要”方法是类的一部分吗?初始化带来了什么?调用程序做了哪些部分?

标签: python recursion turtle-graphics


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多