Подробные базовые знания Python от записи к мастеру (восемь) метод магии

Подробные базовые знания Python от записи к мастеру (восемь) метод магии

Данные в этой главе , чтобы ввести питона, содержимое каталога можно посмотреть на
другие основы Привет, добро пожаловать , чтобы посмотреть другие мои статьи
основы Python Комментарии от записи к мастеру (а) Введение
(б) объяснить основы основы Python от входа на мастер -
основы Python Детальнее Mastering (в) синтаксисе и функция
Основа Python комментариев от записи к мастеру (г) списки, кортежи, словари, набор
Python Основы Детальнее (пять) управления модулем от входа к мастеру
Python Fundamentals Комментарии от входа в владеют (шесть) операций с файлами
основы Python Комментарии (семь) классов и объектов от входа к мастеру

Что такое магический метод

Как следует из названия, чтобы работать магия может дать вам дополнительный класс «магический» подхода, дает нам большую гибкость, когда необходимо обеспечить некоторый путь для нас, чтобы получить ваши идеи, чтобы достичь, она хорошо известно поддержка Python языковые объекты, метод магии Python делает Python лучше в лицо объекта

Как использовать магический метод

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

Мы можем переписать определенный метод магии, хорошую работу, нам нужно определить, в этом методе волшебном вызывается автоматически, когда операция уже завершена, мы необходимость

Метод Основы магии (чаще)

  1. __ __ новые (ЦБС [... ])
    Первый метод вызывается , когда объект экземпляра 1.
    2. Параметры , передаваемые непосредственно к способу обработки init__ __
    3. Как правило , мы не переопределять этот метод
    4. Когда последовательность неизменны и должны быть изменены , если вам нужно изменить свой
  2. __ __ INIT (сам [... ])
    Конструктор инициализирует (генерация экземпляра может передать параметры) класса называется , когда
  3. __ __ дель (сам)
    метод деструктора (который будет вызываться , когда все указатели экземпляров объектов уничтожаются) , когда экземпляр объекта не разрушается (без точки метки к объекту) вызываются не вызываются при использовании дель, что эквивалентно вывоз мусора
  4. __ __ вызова (сам [, арг ...]) ,
    чтобы экземпляр класса , как функция называется: х (а, б) , призывающим х .__ вызов __ (а, б )
  5. __ Len (само) __
    поведение определяется , когда LEN () вызова
  6. __ __ магнезия (сам)
    Определяет поведение переписываются называются магнезия () Возвращает строку , которая может быть реализована в
    виде
 class h :
	 def __repr__(self):
		return xxx
     		则 a = h()
			运行a 
			结果直接输出xxx

  1. __ __ ул (само)
    определяется как поведение при вызове (ул), мы можем переписать эту реализацию возвращает строку
 class h :
	 def __str__(self):
	    return xxx
     		则 a = h()
			结果返回xxxx
 			Print(a)时输出xxx 
  1. __ байт поведение (само) определяется как () вызов байт __
  2. __ хэш поведение (само) определяется как хэш (вызов) __
  3. __ __ BOOL (само) определяется как поведение при вызове BOOL (), должна возвращать Истина или Ложь
  4. __ __ Формат (я, format_spec) определяют поведение , когда вызов формата ()
    атрибуты , связанные методы
  5. __ GetAttr __ (я, имя) определяется, когда пользователь пытается получить несуществующий вещном
  6. __ GetAttribute __ (я, имя) определяется, когда поведение атрибута класса доступен
  7. __ SetAttr (само, имя, значение), когда поведение, когда свойство имеет значение __
  8. __ delattr поведение (само, название) определяется, когда свойство удаляется __
  9. __ реж (самость) Определяет каталог (как) называется поведение __
  10. __ получить (я, экземпляр, владелец), когда поведение определяется значение дескриптора приобретается __
  11. __ множество (самостоятельно, экземпляр, значение), когда поведение определяется значение дескриптора изменяется __
  12. __ __ удаления (я, например) определены значения дескриптора, когда поведение будет удалена

операторы сравнения

__ л __ (я, другой) определяется меньше , чем число актов: х <у называют Й .__ л __ (У)
__ Ле __ (Self, OTHER) определяет меньшее число актов: х <= Y вызовы х .__ ль __ (у)
__ эк __ (я, другой) , чтобы определить , равное число актов: х == у вызова х -.__ EQ __ (у-)
__ пе __ поведение (самостоятельно, другие) определяют неравные числа: х = у вызовов х -.__ пе __ (у-)
__ GT __ (самостоятельно, другие) определяется больше , чем число актов: х> у вызовы х .__ GT __ (Y)
__ GE __ (Self, OTHER) определяет , большее или равное число актов: х> = у вызовы х .__ GE __ (у)

Арифметические операторы

__ добавить __ (я, другой) , чтобы определить дополнительные поведения: +
__ Sub __ (Self, ДРУГОЕ) определяется поведение вычитания: -
__ MUL __ (Self, другое) определенное поведение умножения: *
__ truediv __ (Self, ДРУГОЙ) определить истинное деление поведение: /
__ floordiv (Self, другой) определяет поведение деления целого __: //
__ MOD (Self, другое) определяются по модулю поведение алгоритма __:%
__ поведение divmod __ (сам, другие) определяются как divmod () вызов
__ пау __ (самостоятельно, другие [ по модулю]) определяются как поведение мощности () , когда вызов или ** операций
__ LShift __ (сам, другие) определяется бит влево поведение сдвига: <<
__ RShift __ (Self, другие) определяется побитовое правильное поведение сдвига: >>
__ и __ (Self, ДРУГАЯ) определяется поведение и операции побитового: &
__ __ XOR (Self, OTHER) определяет поведение операции XOR побитовое: ^
__ __ или (Self, ДРУГОЕ ) определяется поведением или битовых операций: |

Обратная операция (аналогично способу работы)

__ RADD __ (сам, другие) , когда операнды (левые целевые операции) не поддерживают эту операцию называют
__ rsub __ (самостоятельно, другими) , когда операнды (левой целевой операции) не поддерживает эту операцию называют
__ rmul__ (сам, другой) вызываются , когда операнды (левые целевые операции) не поддерживают эту операцию , когда
__ __ rtruediv (самостоятельно, другие) , когда операнды (левую целевую операцию) не поддерживает эту операцию называют
__ rfloordiv __ (сам , другие) вызывается , когда операнды (левая целевые операции) не поддерживает эту операцию , когда
__ __ rmod (самостоятельно, другие) , когда операнды (левая целевые операции) не поддерживает эту операцию называют
__ rdivmod __ (самостоятельно, другие ) , когда операнды (левая целевая операция) не поддерживает эту операцию называют
__ rpow __ (самостоятельно, другой) , когда операнды (левой целевой операции) не поддерживает эту операцию называют
__ rlshift __ (сам, другой) , когда вызывается , когда объект вычисляется (целевая операция влево) не поддерживает эту операцию
__ rrshift __ (самостоятельная, другой) вызывается , когда объект вычисляется (целевая операция влево) не поддерживает эту операцию
__ rxor __ (самостоятельно, другие) , когда объект вычисляется (целевая операция влево) не поддерживает эту операцию называют
__ __ ROR (самостоятельно, другие) , когда объект вычисляется (целевая операция влево) не поддерживает эту операцию называют

Оператор присваивания Инкрементального

__ iadd __ (я, другой) определяется поведение присваивания дополнения: + =
__ ISub __ (Self, OTHER) определяет назначение поведения Вычитание: - =
__ IMUL __ (Self, OTHER) определяет поведение присваивания умножения: * =
__ itruediv __ (Я, другие) определяет присваивания истинного поведения деления: / =
__ ifloordiv __ (Self, другие) определяет поведение целочисленного деления присваивания: // =
__ IMODs __ (Я, другой) определяются назначение поведение алгоритма по модулю:% =
__ ipow __ (Self, другие [модуль]) определяют поведение присваивания возведения в степень: ** =
__ __ ilshift (Self, дРУГОЙ) определяются заданием битого левого сдвига поведение: << =
__ __ irshift (Self, дРУГОЙ) определяется сдвиг бит вправо с присваиванием поведение: >> =
__ IAND __ (Self, OTHER) определяет бито назначение и управление поведением: & =
__ ixor __ (Self, ДРУГОЕ) определенно назначение побитового поведения операции XOR: ^ =
__ __ IOR (Self, OTHER) назначение определяется поведением или битовых операций: | =

Одинарный оператор

__ NEG __ поведение (сам) определяет положительный знак: + X
__ POS __ поведение (сам) определяет отрицательный знак: чем Х-
__ ABS __ (сам) определяет поведение , когда ABS () вызов
__ курс История Для Преобразования __ (я) , определенная побитовый анти поведение: ~ х

Тип преобразования

__ комплекс __ (само) определяется как сложное поведение (необходимо вернуть соответствующее значение) при вызове ()
__ INT __ (Self) определяется как поведение при вызове INT () (необходимо вернуть соответствующее значение)
__ поплавка __ (Self) определяется когда поплавок () поведение вызова (потребность вернуть соответствующее значение)
__ __ раунд (Self [, п]) определяются как поведение называется круглым () (необходимо вернуть соответствующее значение)

__ Индекс __ (само)

  1. Когда объект применяется в выражении среза достигается литой пластик
  2. Если определить тип пользовательского значения может быть использовано в срезе, вы должны определить __ index__
  3. __ __ Если индекс определяется, __ int__ также должны быть определены, и возвращает то же значение

Контекст управления (с заявлением)

  1. __ __ введите (самость) 1. нестандартное поведение инициализации при использовании с утверждением
  2. __ имя после enter__ с возвращаемым значением утверждения в качестве обязательных целей или
  3. __ __ выхода (самостоятельно, exc_type, exc_value, отслеживающий)
  4. Когда блок кода определяется для исполнения или прекращен контекст менеджер должен сделать
  5. Как правило , обрабатывает исключения, делают процедуру очистки или блоков кода после того, как готового
    контейнерного типа ( как правило , для эксплуатации контейнеров)
  6. __ __ LEN (само) Определяет поведение () вызов LEN (возвращает длину контейнера судов и тому подобное)
  7. __ __ (самостоятельно, ключ) Возвращает контейнер определяет поведение указанного элемента GetItem, что эквивалентно себе [ключ]
  8. __ SetItem __ (само, ключ, значение) определяет поведение контейнера при условии, что указанный элемент, соответствующий себе [ключ] = значение
  9. __ __ (самостоятельно, ключ), чтобы удалить определение контейнера в указанном поведении элемента соответствует delitem дель SELF [ключ]
  10. __ __ ITER элемент (сам) в итерации определяется как поведение контейнера
  11. __ обратное поведение (само) определяется как () обратный вызов __
  12. __ содержит __ (самостоятельная, элемент), как определено поведение при использовании оператора (или не) члена теста

Пользовательский контейнер

Если варакторный не нужно определить пользовательский __len__ __getitem__ метода и
если потребности контейнера , чтобы определить переменную __getitem__ __len__ и методы, а также методы __setitem__ и __delitem__

Примеры настройки пользовательского списка неизменны, необходимо записать количество раз, доступ к каждому элементу

class mylist:
	del __init__(self,*args):
		self.values = [x for x in args]    #将*args的元素放入列表中
#(x for x in args) 是一个列表推导式,,,
        self.count = {}.fromkeys(range(len(self.values)),0)
	def __len__(self):
		return len (self.values)
	def __getitem__(self,key):
		self.count[key] += 1
		return self.values[key]

Опубликовано 14 оригинальных статей · вона похвала 31 · просмотров 4720

рекомендация

отblog.csdn.net/GuanFuXinCSDN/article/details/104315197