已经更新了我的 pip,仍然无法将 circle 添加为模块

Already updated my pip, still failed to add circle as a module

  1. 我一直在寻找使用 class 方法创建圆圈的不同方法。起初,我能够打印 'c1',但是,在更新我的 python 之后,它说没有定义这让我很困惑。
def __int__(x0, y0, r):
          self.x0 = x0
          self.y0 = y0
          self.r = r

    # create a unit circle centered at (0,0)
        c1 = Circle(0, 0, 1)
    
    # create a circle of radius 3 centered at (0,0)
        c2 = Circle(0, 0, 3)
    
    # create a unit circle centered at (2, 5)
        c3 = Circle(2, 5, 1)

    # create a circle of radius 3 centered at (4, 2)
        c4 = Circle(3, 4, 2)

    print (c1)
--------------------------------------------------------------

    from circle.Circle import move

    c1_xdelta = 4
    c1_ydelta = 5

    for i in range(1, 20):
        if i%10 == 0:
            c1.move(c1_xdelta, c1_ydelta)

    from circle.Circle import move
        c1_xdelta = 4
        c1_ydelta = 5

    for i in range(1, 20):
       if i%10 == 0:
           c1.move(c1_xdelta, c1_ydelta)

    from circle.Circle import move
         c1_xdelta = 4
         c1_ydelta = 5

    for i in range(1, 20):
       if i%10 == 0:
         c1.move(c1_xdelta, c1_ydelta)
---------------------------------------------------------------------------
    ModuleNotFoundError                       Traceback (most recent 
       call last)
     ~\AppData\Local\Temp/ipykernel_7076/1685247526.py in <module>
         ----> 1 from circle.Circle import move
      2 c1_xdelta = 4
      3 c1_ydelta = 5
      4 
      5 for i in range(1, 20):
 
     ModuleNotFoundError: No module named 'circle'

有什么方法可以解决吗,或者有什么推荐的编程功能的网站吗?谢谢。

这里有一些问题。首先 class 不接受任何参数,所以

class Circle(object):

它只是

class circle

其次,您对 __init__ 使用了一个下划线,所以它是

class Circle:
    def __init__(x0, y0, r):

你也没有将声明的变量设置为任何东西,它必须是这个

class Circle:
    def __init__(x0, y0, r):
        self.x0 = x0 
        self.y0 = y0 
        self.r = r

变量名也最好不要大写,所以把R改成r

您还缩进了 class 中的 c1、c2、c3 和 c4 变量,它需要是这个

class Circle:
    def __init__(x0, y0, r):
        self.x0 = x0 
        self.y0 = y0 
        self.r = r

c1 = Circle(0, 0, 1)
c2 = Circle(0, 0, 3)
c3 = Circle(2, 5, 1)
c4 = Circle(3, 4, 2)

现在你可以打印出c1了。但是 c1 只会打印出类似 <__main__.circle object at 0x000001F89906A0A0> 的内容,因为您正在打印对象本身。如果你想打印一个特定的值,你可以使用 .运算符,所以它是

print(c1.x0)

那会打印 x0 变量

如果你想打印它们,你可以使用

print(c1.x0, c1.y0, c1.r)

这是否符合您的目标?

class circle:
    def __init__(self, x0, y0, r):
        self.x0 = x0
        self.y0 = y0
        self.r = r

    def move(self, x, y):
        self.x0 += x
        self.y0 += y

c1 = circle(0, 0, 1)

c1_xdelta = 4
c1_ydelta = 5

for i in range(1, 20):
    if i % 10 == 0:
        c1.move(c1_xdelta, c1_ydelta)

print(c1.x0, c1.y0)