Skip to content
Advertisement

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

  1. I have been searching for different methods for using a class method to create circles. At first, I was able to print ‘c1’, however, after updating my python, it said is not defined which confuses me.
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)
     ~AppDataLocalTemp/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'

Is there any method that I can solve it or any recommended websites for such programming functions? Thank you.

Advertisement

Answer

There’s a few things wrong here. First off a class doesn’t take in any arguments, so instead of

class Circle(object):

it would just be

class circle

secondly you are using one underscore for __init__, so it’d be

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

also you aren’t setting the declared variables to anything, it needs to be this

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

it’s also best not to use capitals for variable names, so change R to r

you’ve also indented the c1, c2, c3 and c4 variables to be inside the class, it needs to be this

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)

now you can print out c1. But c1 will just print out something like <__main__.circle object at 0x000001F89906A0A0> because you’re printing the object itself. If you want to print a specific value you use the . operator, so it’d be

print(c1.x0)

that’d print the x0 variable

if you want to print them all you could use

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

is this something along the lines of what you’re going for?

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)
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement