Skip to content Skip to sidebar Skip to footer

Python: How To Call An Instance Method From A Class Method Of The Same Class

I have a class as follows: class MyClass(object): int = None def __init__(self, *args, **kwargs): for k, v in kwargs.iteritems(): setattr(self, k, v)

Solution 1:

No, you can't and shouldn't call an instance method from a class without an instance. This would be very bad. You can, however call, a class method from and instance method. Options are

  1. make get_param a class method and fix references to it
  2. have __init__ call get_param, since it is a instance method

Also you may be interested in an AttrDict since that looks like what you are trying to do.

Solution 2:

You can call instance method with classmethod when treating it like instance method and add class as instance. IMO it is really bad practice, but it solves your problem.

@classmethod
def new(cls):
    params = cls.get_params(cls)
    return cls(**params)

Post a Comment for "Python: How To Call An Instance Method From A Class Method Of The Same Class"