Найти - Пользователи
Полная версия: Объекты.
Начало » Python для экспертов » Объекты.
1
Ronax
Что такое встроенный метод?
Что такое специальный метод?
alexgreg
Ronax
Что такое встроенный метод?

Если ты про встроенные функции, то ответ такой: всё, что в питоновском модуле builtins найдёшь - всё встроено в интерпретатор

Примеры здесь https://pythonworld.ru/osnovy/vstroennye-funkcii.html можно посмотреть

Ronax
Что такое специальный метод?

набирай в оболочке
  for x n dir(<любой объект>): print(x)
все методы вида __<название>__ являются специальными (по два подчеркивания с обеих сторон)

чтение книг - в помощь
alexgreg
Пример для понимания специальных методов.

пишу код:

 class A:
    def myMethod(self):
        print('from class A')
class B:
    def __call__(self, *args, **kwargs):
        print('from class B')
# test
if __name__ == '__main__':
    a = A()
    b = B()
    a.myMethod()
    b()
        
    a()

получаю результат:

 ================ RESTART: Dweb.py/xp/example_spec_method.py ================
from class A
from class B
Traceback (most recent call last):
  File "D:/web.py/xp/example_spec_method.py", line 17, in <module>
    a()
TypeError: 'A' object is not callable
>>>


Специальный метод __call__(self) сделал возможным вызывать экземпляр класса с параметрами как функцию
doza_and
только a экземпляр не того класса где вы call определили
PEHDOM
ну дык все правильно, b() выдал “from class B” потому что в нем метод __call__ обьявлен, а a() выдал TypeError потому что там он не обьявлен.
alexgreg
PEHDOM
ну дык все правильно, b() выдал “from class B” потому что в нем метод __call__ обьявлен, а a() выдал TypeError потому что там он не обьявлен.

внимательность - лучший друг программиста
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