Problem with importing in Python

su29090 129km09 at gmail.com
Sat Jan 12 00:23:17 CET 2013


On Friday, January 11, 2013 5:43:10 PM UTC-5, Dave Angel wrote:
> On 01/11/2013 05:17 PM, su29090 wrote:
> 
> > I'm trying to import a python file it keeps saying:
> 
> >
> 
> > ImportError: cannot import name Circle
> 
> >
> 
> > Here is the file I'm trying to import:
> 
> >
> 
> > Circle.py
> 
> >
> 
> > import math
> 
> >
> 
> > class circle:
> 
> >     #Construct a circle object
> 
> >     def __init__(self, radius = 1):
> 
> >         self.radius = radius
> 
> >
> 
> >     def getPerimeter(self):
> 
> >         return 2 * self.radius * math.pi
> 
> >
> 
> >     def getArea(self):
> 
> >         return self.radius * self.radius * math.pi
> 
> >
> 
> >     def setRadius(self, radius):
> 
> >         self.radius = radius
> 
> >
> 
> > from Circle import Circle
> 
> >
> 
> > def main():
> 
> >     #Create a circle with a radius 1
> 
> >     circle1 = Circle()
> 
> >     print("The area of the circle of radius",
> 
> >           circle1.radius, "is" , circle1.getArea())
> 
> >
> 
> >     #Create a circle with a radius 25
> 
> >     circle2 = Circle(25)
> 
> >     print("The area of the circle of radius",
> 
> >           circle2.radius, "is" , circle2.getArea())
> 
> >
> 
> >     #Create a circle with a radius 125
> 
> >     circle3 = Circle(125)
> 
> >     print("The area of the circle of radius",
> 
> >           circle3.radius, "is" , circle3.getArea())
> 
> >
> 
> >     #Modify circle radius 
> 
> >     circle2.radius = 100 # or Circle2.setRadius(100)
> 
> >     print("The area of the circle of radius",
> 
> >           circle2.radius, "is" , circle2.getArea())
> 
> >
> 
> >     main() # Call the main function
> 
> >
> 
> > How can I solve this problem?
> 
> >
> 
> > Thanks in advance.
> 
> >
> 
> 
> 
> As Adnan has pointed out, Python is case insensitive.  You're apparently
> 
> trying to refer to the class Circle by the name circle, or the other way
> 
> around.
> 
> 
> 
> Some comments on asking clear questions:
> 
> 
> 
> 1) Specify the Python version.  I presume 3.3    It probably doesn't
> 
> matter here, but it might have.
> 
> 2) When showing two source files, identify where each starts and ends,
> 
> and what the second one is called.
> 
> 3) When showing an error, include the entire traceback, not just the
> 
> last line.
> 
> 
> 
> Now, there are conventions to follow as well (see Pep8).  One is that
> 
> modules should use all lowercase, and classes should begin with a
> 
> capital.  So the source file of your module should be named  
> 
> circle.py   and the class  Circle.  When you imported and instantiated
> 
> the class, you assumed it was called Circle, but when you defined it,
> 
> you mistakenly called it circle.
> 
> 
> 
> The next error is the accidental indentation of the call to main().  As
> 
> it stands now, it's a recursive call to itself.  And main() will never
> 
> be called, because there's no call at top-level.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> 
> 
> 
> DaveA

Thanks for explanation which was very clear! 



More information about the Python-list mailing list