Python має набір вбудованих методів і__call__>є одним із них. The__call__>метод дозволяє програмістам Python писати класи, де екземпляри поводяться як функції та можуть бути викликані як функція. Коли екземпляр викликається як функція; якщо цей метод визначено,x(arg1, arg2, ...)>є скороченням дляx.__call__(arg1, arg2, ...)>.
object() is shorthand for object.__call__()>
приклад 1:
постпорядковий обхід бінарного дерева
class> Example:> >def> __init__(>self>):> >print>(>'Instance Created'>)> > ># Defining __call__ method> >def> __call__(>self>):> >print>(>'Instance is called via special method'>)> > # Instance created> e>=> Example()> > # __call__ method will be called> e()> |
>
>
сканер сканування java
Вихід:
Instance Created Instance is called via special method>
приклад 2:
шлока мехта
class> Product:> >def> __init__(>self>):> >print>(>'Instance Created'>)> > ># Defining __call__ method> >def> __call__(>self>, a, b):> >print>(a>*> b)> > # Instance created> ans>=> Product()> > # __call__ method will be called> ans(>10>,>20>)> |
алфавіт з цифрами
>
>
Вихід:
Instance Created 200>