[Tutor] static methods & class methods
Prasad, Ramit
ramit.prasad at jpmorgan.com
Fri Apr 20 18:00:58 CEST 2012
> I have a class, and want to use a method of it in the class itself.
>
> How can I do it?
>
> I mean, say I defined foo() , bar() methods in a class myClass. So, how
> can we i use foo() in bar(). I tried to use @staticmethod, @classmethod,
> but I am getting some errors..
>
> sometimes saying "unbound " and sometimes "given more than 1 parameters"
> .. can any one tell me how to do this...
You should read about object oriented programming in Python.
http://www.alan-g.me.uk/tutor/index.htm is a good starting point (on the
left under 'Advanced Topics').
I take this to mean you want to call a method in the class from another
method in the class. I assume you do not need to use "staticmethod" and
do something like below:
class A
Method foo:
<do something>
Method bar
< do something including calling foo >
Every method in a class *must* take in the instance. The convention
is to call this "self". To access another method you use the instance
and call the method desired. An unbound function is a function that
is not tied to an object/class. This is also why you got "given more
than 1 parameters" error. I assume you did not include self in the
function definition and Python was passing it. This becomes the
following:
class A( object ): # I use Python 2.x
def foo( self ): # must include self
print 'foo'
def bar( self ):
print 'bar'
self.foo() # This uses the instance to call foo
Ramit
Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
712 Main Street | Houston, TX 77002
work phone: 713 - 216 - 5423
--
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
More information about the Tutor
mailing list