变量被错误地赋值或使用
还有 Python 类的构造函数是__init__ ,而不是 __int__。
你创建了一个名为 Snow 的类,但在创建实例时也使用了 Snow 作为变量名。这会导致类名被覆盖。建议将实例列表命名为其他不同于类名的名称
import turtle as tu
import random as ra
import time
tu.setup(1.0, 1.0)
tu.bgcolor('black')
tu.title("雪花")
colors = ['white']
class Snow:
def __init__(self):
self.r = ra.uniform(2, 4)
self.x = ra.randint(-1000, 1000)
self.y = ra.randint(500, 1000)
self.speed = ra.randint(5, 20)
self.color = ra.choice(colors)
self.outline = 2
def snow(self):
x = self.r
tu.pensize(self.outline)
tu.penup()
tu.goto(self.x, self.y)
tu.pendown()
tu.color(self.color)
for i in range(6):
tu.forward(x*5)
tu.backward(x*2)
tu.left(60)
tu.forward(x*2)
tu.backward(x*2)
tu.right(120)
tu.forward(x*2)
tu.backward(x * 2)
tu.left(60)
tu.backward(x*3)
tu.right(60)
def move(self):
self.y -= self.speed
if self.y < -500:
self.r = ra.uniform(2, 4)
self.x = ra.randint(-1000, 1000)
self.y = 500
self.speed = ra.randint(5, 20)
self.color = ra.choice(colors)
self.outline = 2
snows = [Snow() for _ in range(595)]
tu.penup()
tu.goto(0, 0)
tu.pendown()
tu.pencolor("white")
messages = ["张万森", "下雪了", "我好想你"]
for message in messages:
tu.write(message, align="center", font=("Comic Sans MS", 66, "bold"))
time.sleep(1)
tu.clear()
while True:
tu.tracer(0)
tu.clear()
tu.penup()
tu.goto(0, 0)
tu.pendown()
tu.write("我好想你", align="center", font=("Comic Sans MS", 66, "bold"))
for snow in snows:
snow.move()
snow.snow()
tu.update()