我有一个属性错误,找不到我的问题的答案

时间:2018-12-22 13:08:00

标签: python turtle-graphics

我正在尝试使用python中的turtle模块创建一个在屏幕上绘制五个球的程序。我正在尝试使用尽可能少的代码行,但是现在出现了我不理解的属性错误。

import turtle
import random

class turtles:
    def __init__(self):
        self.turtle.Pen()
        self.color(random.randint(0.0, 1.0),random.randint(0.0, 1.0) ,random.randint(0.0, 1.0))
        self.begin_fill()
        self.circle(50)
        self.end_fill()

t1= turtles()

def t1_circle():
    t1.left(90)
    t1.forward(250)
    mycircle(random.randint(0.0, 1.0),random.randint(0.0, 1.0) ,random.randint(0.0, 1.0))

t1_circle()

我希望在屏幕上画一个显示随机颜色的球。

2 个答案:

答案 0 :(得分:0)

您会收到此错误,因为class turtles没有属性'turtle'。当您指定self.turtle时,python需要在turtles类中定义的名为turlte的属性。 您可以在此here

中阅读更多内容
  

我希望在屏幕上画一个显示随机颜色的球。

在这里,我将做上面提到的事情。您可以更改代码以满足您的确切要求。

run.py

答案 1 :(得分:0)

  

我正在尝试制作一个程序,使用该程序在屏幕上绘制五个球   python中的turtle模块。我正在尝试使用尽可能少的代码行   尽可能...

from turtle import *
from random import *

WIDTH, HEIGHT = getscreen().window_width() // 2, getscreen().window_height() // 2

penup()

for _ in range(5):
    goto(randrange(50 - WIDTH, WIDTH - 50), randrange(50 - HEIGHT, HEIGHT - 50))
    dot(100, (random(), random(), random()))

done()

对于实心圆,dot()命令具有一些优点。它始终是一个实心圆,因此没有begin_fill()end_fill()。您可以将颜色传递给dot()函数。它在乌龟上打印给定的直径(不是 radius 居中的圆(而不是在 edge 类似于circle()