NameError:' self'没有定义

时间:2016-03-04 21:48:37

标签: python turtle-graphics

我正在制作一个随机的圆形绘图程序。绘制圆圈后,它会将乌龟图形转换为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()

2 个答案:

答案 0 :(得分:1)

查看上一个os.system行,您正在尝试插入未定义的self.id

答案 1 :(得分:1)

在Python中,self通常在类(对象)中用于引用您正在使用的对象。可以在没有类作为变量的情况下使用self,但需要先定义它。

在您的代码中,您没有将self定义为等于任何内容,因此代码不知道如何处理它。

如果您尝试使用它来访问对象,则不能以这种方式完成。它必须在类中完成,类​​似于this在Java中的工作方式。

This answer可能会帮助您了解Python中的self