我正在制作一个随机的圆形绘图程序。绘制圆圈后,它会将乌龟图形转换为PNG。我收到的错误是" NameError:name' self'未定义"。有谁知道为什么?
import random
import time
import turtle
import os
print("Abstract Art Template Generator")
print()
print("This program will generate randomly placed and sized circles on a blank screen.")
num = int(input("Please specify how many circles you would like to be drawn: "))
radiusMin = int(input("Please specify the minimum radius you would like to have: "))
radiusMax = int(input("Please specify the maximum radius you would like to have: "))
screenholder = input("Press ENTER when you are ready to see your circles drawn: ")
t = turtle.Pen()
wn = turtle.Screen()
def mycircle():
x = random.randint(radiusMin, radiusMax)
t.circle(x)
t.up()
y = random.randint(0, 360)
t.seth(y)
if t.xcor() < -300 or t.xcor() > 300:
t.goto(0, 0)
elif t.ycor() < -300 or t.ycor() > 300:
t.goto(0, 0)
z = random.randint(0, 100)
t.forward(z)
t.down()
for i in range(0, num):
mycircle()
cv = turtle.getcanvas()
cv.postscript(file="template.ps", colormode='color')
os.system("mkdir / template.ps")
os.system("gs -q -dSAFER -sDEVICE=png16m -r500 -dBATCH -dNOPAUSE -dFirstPage=%d -dLastPage=%d -sOutputFile=/template.png %s" %(i,i,self.id,i,psname))
turtle.done()
答案 0 :(得分:1)
查看上一个os.system
行,您正在尝试插入未定义的self.id
。
答案 1 :(得分:1)
在Python中,self
通常在类(对象)中用于引用您正在使用的对象。可以在没有类作为变量的情况下使用self
,但需要先定义它。
在您的代码中,您没有将self
定义为等于任何内容,因此代码不知道如何处理它。
如果您尝试使用它来访问对象,则不能以这种方式完成。它必须在类中完成,类似于this
在Java中的工作方式。
This answer可能会帮助您了解Python中的self
。