调整 Python 和 "circle object has no attribute "canvas 中圆圈 class 的圆圈大小""

Resizing size of Circle for circle class in Python and "circle object has no attribute "canvas""

  1. 我的结果显示“圆形对象没有属性'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 中所指的 selfself基本上是指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)