ログイン

Python Magic Methods

Python Magic Methods
85問 • 1年前
  • Ален Саитов
  • 通報

    問題一覧

  • 1

    Метод возвращает пустой экземпляр класса

    __new__()

  • 2

    Метод для установки атрибутам значения при создании экземпляра

    __init__()

  • 3

    Возвращает строковое представление в не формальном виде

    __str__()

  • 4

    Возвращает строковое представление в формальном виде

    __repr__()

  • 5

    Если в классе реализован метод __repr__(), но не реализован метод __str__()), то при передаче экземпляра данного класса в функцию str() вызывается

    реализованный метод __repr__()

  • 6

    Если в классе реализован метод __str__(), но не реализован метод __repr__()), то при передаче экземпляра данного класса в функцию repr() вызывается

    базовая реализация метода __repr__()

  • 7

    Метод для сравнение с помощью оператора ==

    __eq__()

  • 8

    Метод для сравнение с помощью оператора !=

    __ne__()

  • 9

    Если метод __eq__() реализован, будет ли атоматически реализован метод __ne__()

    Да

  • 10

    Если метод __ne__() реализован, будет ли атоматически реализован метод __eq__()

    Нет

  • 11

    Что должны возвращать методы сравнения, если не реализован сценарий

    NotImplemented

  • 12

    Метод, проверяемого (одиночного) объекта который вызывается при применении оператора in

    __eq__()

  • 13

    Метод для сравнение с помощью оператора <

    __lt__()

  • 14

    Метод для сравнение с помощью оператора >

    __gt__()

  • 15

    Метод для сравнение с помощью оператора <=

    __le__()

  • 16

    Метод для сравнение с помощью оператора >=

    __ge__()

  • 17

    Декоратор, для реализации сравнений, что бы уменьшить кол-во методов

    @total_ordering

  • 18

    Модель, в котором есть декоратор, упрощающий процесс сравнения

    functools

  • 19

    Какие метода сравнения достаточно реализовать, что бы использовать декоратор, который автоматически добавляет остальные методы сравнения (, )

    __eq__(), __lt__()

  • 20

    Если в классе реализовано сравнение на < можно ли считать, что сравнение на > реализовано автоматически?

    Да

  • 21

    Если в классе реализовано сравнение на > можно ли считать, что сравнение на < реализовано автоматически?

    Да

  • 22

    Метод для унарного оператора + print(+angle)

    __pos__()

  • 23

    Метод для унарного оператора - print(-angle)

    __neg__()

  • 24

    Метод для унарного оператора ~ print(~angle) (не минус, а другой символ)

    __invert__()

  • 25

    Что делают унарные операторы?

    возвращают новые объекты того же класса

  • 26

    Встроенной функции abs() дергает метод

    __abs__()

  • 27

    Встроенной функции round() дергает метод

    __round__()

  • 28

    Встроенной функции trunc() из модуля math дергает метод

    __trunc__()

  • 29

    Встроенной функции floor() из модуля math дергает метод

    __floor__()

  • 30

    Встроенной функции ceil() из модуля math дергает метод

    __ceil__()

  • 31

    сложение (оператор +)

    __add__()

  • 32

    вычитание (оператор -)

    __sub__()

  • 33

    умножение (оператор *)

    __mul__()

  • 34

    обычного деление (оператор /)

    __truediv__()

  • 35

    целочисленное деления (оператор //)

    __floordiv__()

  • 36

    деление по модулю (оператор%)

    __mod__()

  • 37

    Результатам арифметических операций

    Новые объекты того же класса

  • 38

    Отраженные арифметические операции сложения (оператор +)

    __radd__()

  • 39

    Отраженные арифметические операции вычитания (оператор -)

    __rsub__()

  • 40

    Отраженные арифметические операции умножения (оператор *)

    __rmul__()

  • 41

    Отраженные арифметические операции обычного деления (оператор /)

    __rtruediv__()

  • 42

    Отраженные арифметические операции целочисленного деления (оператор //)

    __rfloordiv__()

  • 43

    Отраженные арифметические операции деления по модулю (оператор %)

    __rmod__()

  • 44

    оператора возведения в степень ( ** )

    __pow__()

  • 45

    Встроенная функция divmod() дергает метод

    __divmod__()

  • 46

    определяет поведение для двоичного сдвига влево (оператор <<)

    __lsshift__()

  • 47

    определяет поведение для двоичного сдвига вправо (оператор >>)

    __rshift__()

  • 48

    определяет поведение для двоичного И (оператор &)

    __and__()

  • 49

    определяет поведение для двоичного ИЛИ (оператор |)

    __or__()

  • 50

    определяет поведение для двоичного XOR, (оператор ^)

    __xor__()

  • 51

    определяет поведение для сложения (оператор +=)

    __iadd__()

  • 52

    определяет поведение для вычитания (оператор -=)

    __isub__()

  • 53

    определяет поведение для умножения (оператор *=)

    __imul__()

  • 54

    определяет поведение для обычного деления (оператор /=)

    __itruediv__()

  • 55

    определяет поведение для целочисленного деления (оператор //=)

    __ifloordiv__()

  • 56

    определяет поведение для деления по модулю (оператор %=)

    __imod__()

  • 57

    Операторы составного присваивания (+=, -=, *= и т.д.)

    изменяют исходный объект

  • 58

    Если в классе не определены магические методы с префиксом i, но определены их основные версии (без префикса i)

    операторами составного присваивания пользоваться можно. Но результатами операций будут новые объекты

  • 59

    Метод, который делает экземпляр класса вызываемым, (как функция)

    __call__()

  • 60

    Будет работать, если определен метод? instance = AnyClass() if instance: ''' Дальше код '''

    __bool__()

  • 61

    определяет поведение экземпляра при передаче в функцию int().

    __int__()

  • 62

    определяет поведение экземпляра при передаче в функцию float().

    __float__()

  • 63

    определяет поведение экземпляра при передаче в функцию complex()

    __complex__()

  • 64

    Встроенные функции all() и any() так же приводят к вызову метода

    __bool__()

  • 65

    вызывается при обращении к любому атрибуту

    __getattribute__()

  • 66

    вызывается при обращении к несуществующему атрибуту

    __getattr__()

  • 67

    вызывается при установке атрибута или изменении его значения

    __setattr__()

  • 68

    вызывается при удалении любого атрибута

    __delattr__()

  • 69

    Дефолтное содержимое метода __getattribute__(self, attr):

    return object.__getattribute__(self, attr)

  • 70

    __eq__() по умолчанию

    реализованы. экземпляры этих классов равны только сами себе

  • 71

    по умолчанию __hash__

    реализованы. экземпляры этих классов равны только сами себе

  • 72

    Если пользовательский класс переопределяет магический метод __eq__(), то он дополнительно должен переопределить магический метод

    __hash__()

  • 73

    Протокол итерируемых объектов

    __iter__()

  • 74

    Протокол итераторов

    __iter__(), __next__()

  • 75

    Исключение, которое вызывается, когда закончились элементы внутри метода __next__()

    StopIteration

  • 76

    Протокол неизменяемой последовательности

    __len__(), __getitem__(), __iter__(), __contains__()

  • 77

    Принимает индекс и возвращает элемент, который находится под этим индексом

    __getitem__()

  • 78

    в качестве аргумента item принимает объект, наличие которого требуется проверить item in items: - метод объекта items, который проверит есть ли в нем item

    __contains__()

  • 79

    Протокол изменяемой последовательности

    __len__(), __contains__(), __getitem__(), __delitem__(), __setitem__(), __iter__()

  • 80

    поведение при передаче в функцию reversed()

    __reversed__()

  • 81

    Протокол контекстного менеджера

    __enter__(), __exit__()

  • 82

    Протокол дескриптора

    __get__(), __set__(), __delete__(), __set_name__()

  • 83

    Суть наследования

    является

  • 84

    Суть композиции

    имеет

  • 85

    Если экземпляры некоторого класса содержат только фиксированный (определенный заранее) набор атрибутов, мы можем использовать

    __slots__

  • English

    English

    Ален Саитов · 41問 · 2年前

    English

    English

    41問 • 2年前
    Ален Саитов

    Python Работа с файлами

    Python Работа с файлами

    Ален Саитов · 42問 · 2年前

    Python Работа с файлами

    Python Работа с файлами

    42問 • 2年前
    Ален Саитов

    Python Decimal

    Python Decimal

    Ален Саитов · 23問 · 2年前

    Python Decimal

    Python Decimal

    23問 • 2年前
    Ален Саитов

    Python Срезы

    Python Срезы

    Ален Саитов · 12問 · 2年前

    Python Срезы

    Python Срезы

    12問 • 2年前
    Ален Саитов

    Python String

    Python String

    Ален Саитов · 43問 · 2年前

    Python String

    Python String

    43問 • 2年前
    Ален Саитов

    Python List

    Python List

    Ален Саитов · 51問 · 2年前

    Python List

    Python List

    51問 • 2年前
    Ален Саитов

    Python Dict

    Python Dict

    Ален Саитов · 32問 · 2年前

    Python Dict

    Python Dict

    32問 • 2年前
    Ален Саитов

    Python Datetime

    Python Datetime

    Ален Саитов · 76問 · 2年前

    Python Datetime

    Python Datetime

    76問 • 2年前
    Ален Саитов

    Python time

    Python time

    Ален Саитов · 26問 · 2年前

    Python time

    Python time

    26問 • 2年前
    Ален Саитов

    Python calendar

    Python calendar

    Ален Саитов · 27問 · 2年前

    Python calendar

    Python calendar

    27問 • 2年前
    Ален Саитов

    Python sys

    Python sys

    Ален Саитов · 12問 · 2年前

    Python sys

    Python sys

    12問 • 2年前
    Ален Саитов

    Python csv

    Python csv

    Ален Саитов · 19問 · 2年前

    Python csv

    Python csv

    19問 • 2年前
    Ален Саитов

    Python json

    Python json

    Ален Саитов · 13問 · 2年前

    Python json

    Python json

    13問 • 2年前
    Ален Саитов

    Python zipfile

    Python zipfile

    Ален Саитов · 21問 · 2年前

    Python zipfile

    Python zipfile

    21問 • 2年前
    Ален Саитов

    Python pickle

    Python pickle

    Ален Саитов · 10問 · 2年前

    Python pickle

    Python pickle

    10問 • 2年前
    Ален Саитов

    Python operator

    Python operator

    Ален Саитов · 15問 · 2年前

    Python operator

    Python operator

    15問 • 2年前
    Ален Саитов

    Python os

    Python os

    Ален Саитов · 21問 · 2年前

    Python os

    Python os

    21問 • 2年前
    Ален Саитов

    Python shutil

    Python shutil

    Ален Саитов · 10問 · 2年前

    Python shutil

    Python shutil

    10問 • 2年前
    Ален Саитов

    Python shelve

    Python shelve

    Ален Саитов · 13問 · 2年前

    Python shelve

    Python shelve

    13問 • 2年前
    Ален Саитов

    Python set

    Python set

    Ален Саитов · 47問 · 2年前

    Python set

    Python set

    47問 • 2年前
    Ален Саитов

    Python tuple

    Python tuple

    Ален Саитов · 26問 · 2年前

    Python tuple

    Python tuple

    26問 • 2年前
    Ален Саитов

    Python collections

    Python collections

    Ален Саитов · 96問 · 2年前

    Python collections

    Python collections

    96問 • 2年前
    Ален Саитов

    Python Обработка Исключения

    Python Обработка Исключения

    Ален Саитов · 24問 · 2年前

    Python Обработка Исключения

    Python Обработка Исключения

    24問 • 2年前
    Ален Саитов

    Python Функции

    Python Функции

    Ален Саитов · 7問 · 2年前

    Python Функции

    Python Функции

    7問 • 2年前
    Ален Саитов

    Python itertools

    Python itertools

    Ален Саитов · 20問 · 2年前

    Python itertools

    Python itertools

    20問 • 2年前
    Ален Саитов

    Python Регулярные выражения

    Python Регулярные выражения

    Ален Саитов · 25問 · 2年前

    Python Регулярные выражения

    Python Регулярные выражения

    25問 • 2年前
    Ален Саитов

    Python re

    Python re

    Ален Саитов · 20問 · 2年前

    Python re

    Python re

    20問 • 2年前
    Ален Саитов

    問題一覧

  • 1

    Метод возвращает пустой экземпляр класса

    __new__()

  • 2

    Метод для установки атрибутам значения при создании экземпляра

    __init__()

  • 3

    Возвращает строковое представление в не формальном виде

    __str__()

  • 4

    Возвращает строковое представление в формальном виде

    __repr__()

  • 5

    Если в классе реализован метод __repr__(), но не реализован метод __str__()), то при передаче экземпляра данного класса в функцию str() вызывается

    реализованный метод __repr__()

  • 6

    Если в классе реализован метод __str__(), но не реализован метод __repr__()), то при передаче экземпляра данного класса в функцию repr() вызывается

    базовая реализация метода __repr__()

  • 7

    Метод для сравнение с помощью оператора ==

    __eq__()

  • 8

    Метод для сравнение с помощью оператора !=

    __ne__()

  • 9

    Если метод __eq__() реализован, будет ли атоматически реализован метод __ne__()

    Да

  • 10

    Если метод __ne__() реализован, будет ли атоматически реализован метод __eq__()

    Нет

  • 11

    Что должны возвращать методы сравнения, если не реализован сценарий

    NotImplemented

  • 12

    Метод, проверяемого (одиночного) объекта который вызывается при применении оператора in

    __eq__()

  • 13

    Метод для сравнение с помощью оператора <

    __lt__()

  • 14

    Метод для сравнение с помощью оператора >

    __gt__()

  • 15

    Метод для сравнение с помощью оператора <=

    __le__()

  • 16

    Метод для сравнение с помощью оператора >=

    __ge__()

  • 17

    Декоратор, для реализации сравнений, что бы уменьшить кол-во методов

    @total_ordering

  • 18

    Модель, в котором есть декоратор, упрощающий процесс сравнения

    functools

  • 19

    Какие метода сравнения достаточно реализовать, что бы использовать декоратор, который автоматически добавляет остальные методы сравнения (, )

    __eq__(), __lt__()

  • 20

    Если в классе реализовано сравнение на < можно ли считать, что сравнение на > реализовано автоматически?

    Да

  • 21

    Если в классе реализовано сравнение на > можно ли считать, что сравнение на < реализовано автоматически?

    Да

  • 22

    Метод для унарного оператора + print(+angle)

    __pos__()

  • 23

    Метод для унарного оператора - print(-angle)

    __neg__()

  • 24

    Метод для унарного оператора ~ print(~angle) (не минус, а другой символ)

    __invert__()

  • 25

    Что делают унарные операторы?

    возвращают новые объекты того же класса

  • 26

    Встроенной функции abs() дергает метод

    __abs__()

  • 27

    Встроенной функции round() дергает метод

    __round__()

  • 28

    Встроенной функции trunc() из модуля math дергает метод

    __trunc__()

  • 29

    Встроенной функции floor() из модуля math дергает метод

    __floor__()

  • 30

    Встроенной функции ceil() из модуля math дергает метод

    __ceil__()

  • 31

    сложение (оператор +)

    __add__()

  • 32

    вычитание (оператор -)

    __sub__()

  • 33

    умножение (оператор *)

    __mul__()

  • 34

    обычного деление (оператор /)

    __truediv__()

  • 35

    целочисленное деления (оператор //)

    __floordiv__()

  • 36

    деление по модулю (оператор%)

    __mod__()

  • 37

    Результатам арифметических операций

    Новые объекты того же класса

  • 38

    Отраженные арифметические операции сложения (оператор +)

    __radd__()

  • 39

    Отраженные арифметические операции вычитания (оператор -)

    __rsub__()

  • 40

    Отраженные арифметические операции умножения (оператор *)

    __rmul__()

  • 41

    Отраженные арифметические операции обычного деления (оператор /)

    __rtruediv__()

  • 42

    Отраженные арифметические операции целочисленного деления (оператор //)

    __rfloordiv__()

  • 43

    Отраженные арифметические операции деления по модулю (оператор %)

    __rmod__()

  • 44

    оператора возведения в степень ( ** )

    __pow__()

  • 45

    Встроенная функция divmod() дергает метод

    __divmod__()

  • 46

    определяет поведение для двоичного сдвига влево (оператор <<)

    __lsshift__()

  • 47

    определяет поведение для двоичного сдвига вправо (оператор >>)

    __rshift__()

  • 48

    определяет поведение для двоичного И (оператор &)

    __and__()

  • 49

    определяет поведение для двоичного ИЛИ (оператор |)

    __or__()

  • 50

    определяет поведение для двоичного XOR, (оператор ^)

    __xor__()

  • 51

    определяет поведение для сложения (оператор +=)

    __iadd__()

  • 52

    определяет поведение для вычитания (оператор -=)

    __isub__()

  • 53

    определяет поведение для умножения (оператор *=)

    __imul__()

  • 54

    определяет поведение для обычного деления (оператор /=)

    __itruediv__()

  • 55

    определяет поведение для целочисленного деления (оператор //=)

    __ifloordiv__()

  • 56

    определяет поведение для деления по модулю (оператор %=)

    __imod__()

  • 57

    Операторы составного присваивания (+=, -=, *= и т.д.)

    изменяют исходный объект

  • 58

    Если в классе не определены магические методы с префиксом i, но определены их основные версии (без префикса i)

    операторами составного присваивания пользоваться можно. Но результатами операций будут новые объекты

  • 59

    Метод, который делает экземпляр класса вызываемым, (как функция)

    __call__()

  • 60

    Будет работать, если определен метод? instance = AnyClass() if instance: ''' Дальше код '''

    __bool__()

  • 61

    определяет поведение экземпляра при передаче в функцию int().

    __int__()

  • 62

    определяет поведение экземпляра при передаче в функцию float().

    __float__()

  • 63

    определяет поведение экземпляра при передаче в функцию complex()

    __complex__()

  • 64

    Встроенные функции all() и any() так же приводят к вызову метода

    __bool__()

  • 65

    вызывается при обращении к любому атрибуту

    __getattribute__()

  • 66

    вызывается при обращении к несуществующему атрибуту

    __getattr__()

  • 67

    вызывается при установке атрибута или изменении его значения

    __setattr__()

  • 68

    вызывается при удалении любого атрибута

    __delattr__()

  • 69

    Дефолтное содержимое метода __getattribute__(self, attr):

    return object.__getattribute__(self, attr)

  • 70

    __eq__() по умолчанию

    реализованы. экземпляры этих классов равны только сами себе

  • 71

    по умолчанию __hash__

    реализованы. экземпляры этих классов равны только сами себе

  • 72

    Если пользовательский класс переопределяет магический метод __eq__(), то он дополнительно должен переопределить магический метод

    __hash__()

  • 73

    Протокол итерируемых объектов

    __iter__()

  • 74

    Протокол итераторов

    __iter__(), __next__()

  • 75

    Исключение, которое вызывается, когда закончились элементы внутри метода __next__()

    StopIteration

  • 76

    Протокол неизменяемой последовательности

    __len__(), __getitem__(), __iter__(), __contains__()

  • 77

    Принимает индекс и возвращает элемент, который находится под этим индексом

    __getitem__()

  • 78

    в качестве аргумента item принимает объект, наличие которого требуется проверить item in items: - метод объекта items, который проверит есть ли в нем item

    __contains__()

  • 79

    Протокол изменяемой последовательности

    __len__(), __contains__(), __getitem__(), __delitem__(), __setitem__(), __iter__()

  • 80

    поведение при передаче в функцию reversed()

    __reversed__()

  • 81

    Протокол контекстного менеджера

    __enter__(), __exit__()

  • 82

    Протокол дескриптора

    __get__(), __set__(), __delete__(), __set_name__()

  • 83

    Суть наследования

    является

  • 84

    Суть композиции

    имеет

  • 85

    Если экземпляры некоторого класса содержат только фиксированный (определенный заранее) набор атрибутов, мы можем использовать

    __slots__