Reckoner wrote: > would it be possible to use one of an object's methods without > initializing the object? > > In other words, if I have: > > class Test: > def __init__(self): > print 'init' > def foo(self): > print 'foo' > > and I want to use the foo function without hitting the > initialize constructor function. > > Is this possible? > Hi,
Yes. It is possible and it is called "class method". That is to say, it is a method bound to the class, and not to the class instances. In pragmatic terms, class methods have three differences from instance methods: 1) You have to declare a classmethod as a classmethod with the classmethod() function, or the @classmethod decorator. 2) The first argument is not the instance but the class: to mark this clearly, it is usually named cls, instead of self. 3) Classmethods are called with class objects, which looks like this: ClassName.class_method_name(...). In your example, this becomes: class Test(object): def __init__(self): print 'init' @classmethod def foo(cls): print 'foo' Now call foo without instantiating a Test: Test.foo() RB -- http://mail.python.org/mailman/listinfo/python-list