Problem with importing in Python
su29090
129km09 at gmail.com
Fri Jan 11 18:23:17 EST 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