NameError: 'self' is not defined

NameError: 'self' is not defined

我正在制作一个随机画圆的程序。绘制圆圈后,它将海龟图形转换为 PNG。我收到一个错误 "NameError: name 'self' is not defined"。有谁知道为什么?

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()

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

在Python中,self通常在classes(对象)中使用,以引用您正在使用的对象。可以使用不带 class 的 self 作为变量,但需要先定义它。

在你的代码中,你没有定义 self 等于任何东西,所以代码不知道如何处理它。

如果你想用它来访问一个对象,就不能这样做了。它必须在 class 内完成,类似于 this 在 Java.

中的工作方式

This answer 可能会帮助您理解 Python.

中的 self