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