Jianchun Zhou <jianchun.z...@gmail.com> wrote on 2009-05-07 10:49:33 AM +0800
I have a sample code as bellow:

#!/usr/bin/env python

class Hello:
    def __init__(self):
        print "Hello __init__"
    @classmethod
    def print_hello(self):
        print "hello"

Hello.print_hello()

If I move "self" parameter of print_hello away, this code fragment won't work.

I am wondering when Hello.print_hello() executes, what value will "self" be asigned?

The self variable above with be populated with a reference to the class, so it would be more appropriately named cls such as:

@classmethod
def print_hello(cls):
        print "hello"

But you might consider decorating the method as a static method instead since in your example you are not using the parameter at all. A static method would not require a parameter.

@staticmethod
def print_hello():
        print "hello"

Kurt

--
Kurt Symanzik
k...@kbsymanzik.org
Skype id: ksymanzik
http://kbsymanzik.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to