[EMAIL PROTECTED] schrieb: > Hi, I got confused when I learned the function datetime.today(). > > So far I learned, unless an instance is created, it is not possible to > call the class method. For example: > > class Foo: > def foo(self): > pass > > Foo.foo() # error: unbound method foo(). > > What makes me confused is that datetime class? in datetime module > provides today() function that returns the datetime object. > >>>> import datetime >>>> datetime.datetime.today() > datetime.datetime(2007, 1, 9, 15, 34, 35, 23537) > > It looks like that datetime class provides today() method that can be > callable even if it is unbound method. Do I correct? > > If it is possible to make that kind of function (looks like static > member function in C++), how can I make that?
It is called a classmethod (in contrast to an instancemethod, which is the usual thing), and you can do it - depending on the version of python you have - using the built-in funtion/decorator "classmethod". Like this: class Foo(object): @classmethod def bar(cls): pass Note that a classmethod gets passed the class as first argument, not an instance. You can also create static methods, using "staticmethod". They won't get passed anything. Diez -- http://mail.python.org/mailman/listinfo/python-list