[Tutor] OOPS Problem
wesley chun
wescpy at gmail.com
Mon Apr 13 22:46:06 CEST 2009
hi, and welcome to Python! my comments below...
> I made a class with the name student that prints simply name of the student
> as well as his roll_no also, pasting code here .
sounds pretty straightforward
> class student:
> def __init__(self,name,roll_no):
> self.name=name
> self.roll_no
i recommend you Capitalize the name of the class "student" to
"Student" so that you can more easily visualize the difference between
a class and other variables and functions, i.e., class Student.
also, this is the end of __init__(). the rest of the code needs to be
"dedented" indicate that it is *not* part of that method body:
> def display(self):
> print 'name',self.name,'roll_no',self.roll_no
similarly, your application code is below, and should not be indented at all:
> s1=student("sudhanshu",21) # also change to Student later
> s2=student("rahul",22)
> s1.display()
> s2.display()
>
> student is a class name
exactly why i suggest changing the name to "Student" instead.
> problem 1: Why we always use first method as a __init__
__init__() is not required. in general, people put that in their code
as the 1st method if they have one, and they generally do, but not
always.
> problem 2: why we put first argument as a self inside the __init__ parentheses
self is the required 1st parameter for *all* methods, not just
__init__(). exceptions are static and class methods.
> if __init__ is a constructor then how it works.
Python allocates your objects for you, so it is more of an
"initializer" than a "constructor." it is the 1st method that Python
calls on your behalf after it instantiates your object for you. using
__init__() allows you to "initialize" additional attributes before
your newly-created instance is returned to you.
> How I can run this code , working on ubuntu : but when write inside the
> terminal python filename.py but it shows nothing
if you make the above fixes, then running it on the cmd-line with "$
python FILE.py" will work, but just replace "FILE" with the name of
your file. (also, the "$" is the shell prompt, so don't type that in.)
hope this helps!
-- wesley
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"Core Python Programming", Prentice Hall, (c)2007,2001
"Python Fundamentals", Prentice Hall, (c)2009
http://corepython.com
wesley.j.chun :: wescpy-at-gmail.com
python training and technical consulting
cyberweb.consulting : silicon valley, ca
http://cyberwebconsulting.com
More information about the Tutor
mailing list