调整 Python 和 "circle object has no attribute "canvas 中圆圈 class 的圆圈大小""
Resizing size of Circle for circle class in Python and "circle object has no attribute "canvas""
- 我的结果显示“圆形对象没有属性'canvas'”,有什么办法可以解决吗?我的结果显示“圆形对象没有属性 'canvas'” 有什么办法可以解决吗?谢谢。
class EnlargeShrinkCircle:
def __init__(self, x0, y0, r):
self.x0 = x0
self.y0 = y0
self.r = r
def enlargeCircle(self, r):
self.r += r
c1 = circle( 4, 5, 1)
c1_rdelta = 3
if c1.r == 1:
c1.r += 2
c1.canvas.create_oval(
0.5 - self.r, 0.5 - self.r,
0.5 + self.r, 0.5 + self.r )
print(c1.x0, c1.y0, c1.r)
---------------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_10552/2081812378.py in <module>
14 if c1.r == 1:
15 c1.r += 2
---> 16 c1.canvas.create_oval(
17 0.5 - self.r, 0.5 - self.r,
18 0.5 + self.r, 0.5 + self.r )
AttributeError: 'circle' object has no attribute 'canvas'
在您的 class 定义之外没有名为 self
的变量。当您创建圆对象 c1
时,它会变成您在 class 中所指的 self
。 self
基本上是指class的一个对象。所以你会调用你的方法和属性,如 c1.r
c1 = circle( 4, 5, 1)
c1_rdelta = 3
if c1.r == 1:
c1.r += 2
c1.canvas.create_oval(
0.5 - self.r, 0.5 - self.r,
0.5 + self.r, 0.5 + self.r )
print(c1.x0, c1.y0, c1.r)
- 我的结果显示“圆形对象没有属性'canvas'”,有什么办法可以解决吗?我的结果显示“圆形对象没有属性 'canvas'” 有什么办法可以解决吗?谢谢。
class EnlargeShrinkCircle:
def __init__(self, x0, y0, r):
self.x0 = x0
self.y0 = y0
self.r = r
def enlargeCircle(self, r):
self.r += r
c1 = circle( 4, 5, 1)
c1_rdelta = 3
if c1.r == 1:
c1.r += 2
c1.canvas.create_oval(
0.5 - self.r, 0.5 - self.r,
0.5 + self.r, 0.5 + self.r )
print(c1.x0, c1.y0, c1.r)
---------------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_10552/2081812378.py in <module>
14 if c1.r == 1:
15 c1.r += 2
---> 16 c1.canvas.create_oval(
17 0.5 - self.r, 0.5 - self.r,
18 0.5 + self.r, 0.5 + self.r )
AttributeError: 'circle' object has no attribute 'canvas'
在您的 class 定义之外没有名为 self
的变量。当您创建圆对象 c1
时,它会变成您在 class 中所指的 self
。 self
基本上是指class的一个对象。所以你会调用你的方法和属性,如 c1.r
c1 = circle( 4, 5, 1)
c1_rdelta = 3
if c1.r == 1:
c1.r += 2
c1.canvas.create_oval(
0.5 - self.r, 0.5 - self.r,
0.5 + self.r, 0.5 + self.r )
print(c1.x0, c1.y0, c1.r)