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! -- http://mail.python.org/mailman/listinfo/python-list