Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2007 17:27:43

$m1t
От:
Зарегистрирован: 2006-12-31
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

Два простых вопроса по ооп.

Как сделать класс, каждый экземпляр которого знает который он по счету, и общее количество созданных экземпляров?
Как во время выполнения получить список всех методов класса?
И что бы такое почитать, что бы научиться хоть как-то находить ответы на подобные вопросы самому?



Офлайн

#2 Авг. 5, 2007 18:21:55

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Два простых вопроса по ооп.

$m1t
Как сделать класс, каждый экземпляр которого знает который он по счету, и общее количество созданных экземпляров?
>>> class A(object):
…: def __new__(cls):
…: cls.instances_count = getattr(cls, ‘instances_count’, 0) + 1
…:
…:

>>> a = A()

>>> A.instances_count
<<< 1
>>> b = A()

>>> A.instances_count
<<< 2

$m1t
Как во время выполнения получить список всех методов класса?
>>> class A(object):
….: def get_instance_methods(self):
….: return
….:
….:

>>> a = A()

>>> a.get_instance_methods()
<<<
['__class__',
‘__delattr__’,
‘__getattribute__’,
‘__hash__’,
‘__init__’,
‘__new__’,
‘__reduce__’,
‘__reduce_ex__’,
‘__repr__’,
‘__setattr__’,
‘__str__’,
‘get_instance_methods’]

>>> a.method = lambda x: True

>>> a.get_instance_methods()
<<<
['__class__',
‘__delattr__’,
‘__getattribute__’,
‘__hash__’,
‘__init__’,
‘__new__’,
‘__reduce__’,
‘__reduce_ex__’,
‘__repr__’,
‘__setattr__’,
‘__str__’,
‘get_instance_methods’,
‘method’]

$m1t
И что бы такое почитать, что бы научиться хоть как-то находить ответы на подобные вопросы самому?
http://docs.python.org/
http://www.iso.ru/journal/articles/themes/4



Офлайн

#3 Авг. 5, 2007 23:50:29

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Два простых вопроса по ооп.

Добавлю лишь, что для “посмотреть” специально создан стандартный модуль inspect. В нем есть много интересного.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version