On 4/10/10, vsoler <vicente.so...@gmail.com> wrote: > Still learning python, especially OOP. > > While testing classes, I sometimes think of them as "ordinary > containers" of values and functions (methods). That is, values and > functions can be grouped together inside "namespaces" calles classes. > > class Uno: > a=1 > def m(): def m(self): > print "mouse" print "mouse" #I believe > > Say that I have this "silly" class. > > While I can then write > > print Uno.a > > I cannot write > Uno.m() > > I get the following error message: > > TypeError: m() takes no arguments (1 given) > > Since I have not created any instances of Uno, there is no self > object, and I do not understand what object is supplied to the > function call. I believe that self is always passed, whether you have an instance of the uno class or not. Since you did not tell m() to expect self to be passed to it, and self is passed anyway, m() has this self and has no idea what to do with it. Also, you must make an uno object (u=uno()) then call methods off that object (u.m()) since not doing so means the uno class will not get initialized. > > Could anybody explain what argument is being supplied to the method? > Is ther any workaround to call the m function? > > Thank you > -- > http://mail.python.org/mailman/listinfo/python-list >
-- Have a great day, Alex (msg sent from GMail website) mehg...@gmail.com; http://www.facebook.com/mehgcap -- http://mail.python.org/mailman/listinfo/python-list