Найти - Пользователи
Полная версия: Два простых вопроса по ооп.
Начало » Python для новичков » Два простых вопроса по ооп.
1
$m1t
Как сделать класс, каждый экземпляр которого знает который он по счету, и общее количество созданных экземпляров?
Как во время выполнения получить список всех методов класса?
И что бы такое почитать, что бы научиться хоть как-то находить ответы на подобные вопросы самому?
j2a
$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
Андрей Светлов
Добавлю лишь, что для “посмотреть” специально создан стандартный модуль inspect. В нем есть много интересного.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB