AttributeError: 'function' object has no attribute 'penup'

AttributeError: 'function' object has no attribute 'penup'

我写了下面的代码:

import turtle
from turtle import penup

a = turtle.Turtle(visible=False)
a.speed(0)
b = turtle.Turtle(visible=False)
b.speed(0)
e = turtle.Turtle(visible=False)
e.speed(0)
f = turtle.Turtle(visible=False)
f.speed(0)
pedlightone = turtle.Turtle(visible=False)
pedlightone.speed(0)
pedlighttwo = turtle.Turtle(visible=False)
pedlighttwo.speed(0)
horizontalsplit = turtle.Turtle()
horizontalsplit.speed(0)
verticlesplit = turtle.Turtle()
verticlesplit.speed(0)

def a_movement():
  a.penup()
  a.goto(-475,25)
  a.pendown()
  
  a.goto(-25,25)
  a.left(90) 
  a.forward(400)
  a.backward(400)

def b_movement():
  b.penup()
  b.goto(-475,-25)
  b.pendown()

  b.goto(-25,-25)
  b.right(90)
  b.forward(400)
  b.backward(400)

def e_movement():
  e.penup()
  e.goto(475,25)
  e.pendown()

  e.goto(25,25)
  e.left(90)
  e.forward(400)
  e.backward(400)

def f_movement():
  f.penup()
  f.goto(475,-25)
  f.pendown()

  f.goto(25,-25)
  f.right(90)
  f.forward(400)
  f.backward(400)

def horizontal_split():
  horizontalsplit.penup()
  horizontalsplit.goto(-475,0)
  horizontalsplit.pendown()
  
  horizontalsplit.goto(475,0)

def verticle_split():
  verticlesplit.penup()
  verticlesplit.goto(0,400)
  verticlesplit.pendown()

  verticlesplit.goto(0,-400)

def pedlightone():
  pedlightone.penup()
  pedlightone.goto(-25,25)
  pedlightone.pendown()
  pedlightone.right(45)
  for i in range(8):
    pedlightone.forward(5)
    pedlightone.penup()
    pedlightone.forward(5)
    pedlightone.pendown()

def pedlighttwo():
  pedlighttwo.penup()
  pedlighttwo.goto(25,25)
  pedlightone.pendown()


  pedlighttwo.left(45)
  for i in range(8):
    pedlighttwo.forward(5)
    pedlighttwo.penup()
    pedlighttwo.forward(5)

    pedlighttwo.pendown

def roaddiagram():
  a_movement()
  b_movement()
  e_movement()
  f_movement()
  horizontal_split()
  verticle_split()
  pedlightone()
  pedlighttwo()

roaddiagram()

当我 运行 这样做时,它画了一个十字,中间有一条线,这就是我想要它做的。

但是,我收到一个属性错误,指出 'function' 没有属性 'penup' 确切的错误是: AttributeError: 'function' 对象没有属性 'penup'

谁能帮我指出我哪里做错了。

这件事以前发生过,但它自己解决了,不需要我做任何事情。

谢谢

我通常不提倡使用更少的函数,但在这种情况下,您所做的一切实际上只是初始化,这样可以避免名称冲突:

import turtle
from turtle import penup

a = turtle.Turtle(visible=False)
a.speed(0)
b = turtle.Turtle(visible=False)
b.speed(0)
e = turtle.Turtle(visible=False)
e.speed(0)
f = turtle.Turtle(visible=False)
f.speed(0)
pedlightone = turtle.Turtle(visible=False)
pedlightone.speed(0)
pedlighttwo = turtle.Turtle(visible=False)
pedlighttwo.speed(0)
horizontalsplit = turtle.Turtle()
horizontalsplit.speed(0)
verticlesplit = turtle.Turtle()
verticlesplit.speed(0)

def roaddiagram():
  a.penup()
  a.goto(-475,25)
  a.pendown()
  
  a.goto(-25,25)
  a.left(90) 
  a.forward(400)
  a.backward(400)

  b.penup()
  b.goto(-475,-25)
  b.pendown()

  b.goto(-25,-25)
  b.right(90)
  b.forward(400)
  b.backward(400)

  e.penup()
  e.goto(475,25)
  e.pendown()

  e.goto(25,25)
  e.left(90)
  e.forward(400)
  e.backward(400)

  f.penup()
  f.goto(475,-25)
  f.pendown()

  f.goto(25,-25)
  f.right(90)
  f.forward(400)
  f.backward(400)

  horizontalsplit.penup()
  horizontalsplit.goto(-475,0)
  horizontalsplit.pendown()
  
  horizontalsplit.goto(475,0)

  verticlesplit.penup()
  verticlesplit.goto(0,400)
  verticlesplit.pendown()

  verticlesplit.goto(0,-400)

  pedlightone.penup()
  pedlightone.goto(-25,25)
  pedlightone.pendown()
  pedlightone.right(45)
  for i in range(8):
    pedlightone.forward(5)
    pedlightone.penup()
    pedlightone.forward(5)
    pedlightone.pendown()

  pedlighttwo.penup()
  pedlighttwo.goto(25,25)
  pedlightone.pendown()

  pedlighttwo.left(45)
  for i in range(8):
    pedlighttwo.forward(5)
    pedlighttwo.penup()
    pedlighttwo.forward(5)

    pedlighttwo.pendown

roaddiagram()

就此而言,您并不真的需要 8 只不同的海龟。这些都是独立的。你想添加一些评论,但这样做是一样的:

import turtle

a = turtle.Turtle(visible=False)
a.speed(0)

def roaddiagram():
  a.penup()
  a.goto(-475,25)
  a.pendown()
  a.setheading(0)
  a.forward(450)
  a.left(90) 
  a.forward(400)

  a.penup()
  a.goto(-475,-25)
  a.pendown()
  a.setheading(0)
  a.forward(450)
  a.right(90)
  a.forward(400)

  a.penup()
  a.goto(475,25)
  a.pendown()
  a.setheading(180)
  a.forward(450)
  a.right(90)
  a.forward(400)

  a.penup()
  a.goto(475,-25)
  a.pendown()
  a.setheading(180)
  a.forward(450)
  a.left(90)
  a.forward(400)

  a.penup()
  a.goto(-475,0)
  a.pendown()
  a.goto(475,0)
  a.penup()
  a.goto(0,425)
  a.pendown()
  a.goto(0,-425)

  a.penup()
  a.goto(-25,25)
  a.pendown()
  a.setheading(315)
  for i in range(8):
    a.pendown()
    a.forward(5)
    a.penup()
    a.forward(5)

  a.penup()
  a.goto(25,25)
  a.setheading(225)
  for i in range(8):
    a.pendown()
    a.forward(5)
    a.penup()
    a.forward(5)

roaddiagram()