Как вызвать метод экземпляра из метода класса того же классаPython

Программы на Python
Ответить
Anonymous
 Как вызвать метод экземпляра из метода класса того же класса

Сообщение Anonymous »

У меня есть следующий класс:

Код: Выделить всё

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

def get_params(self):
return {'int': random.randint(0, 10)}

@classmethod
def new(cls):
params = cls.get_params()
return cls(**params)
и мне бы хотелось это сделать:

Код: Выделить всё

>>> obj = MyClass.new()
>>> obj.int  # must be defined
9
Я имею в виду без создания нового экземпляра MyClass, но, очевидно, это не так просто, потому что вызов MyClass.new() выдает ошибку TypeError: несвязанный метод get_params( ) необходимо вызывать с экземпляром MyClass в качестве первого аргумента (вместо этого ничего не получено)
Есть ли способ это сделать?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/164 ... same-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»