{"id":72714,"date":"2024-08-08T21:40:54","date_gmt":"2024-08-08T18:10:54","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/"},"modified":"2024-08-08T21:40:54","modified_gmt":"2024-08-08T18:10:54","slug":"learn-python-magic-methods-a-simple-explanation-21ap","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/","title":{"rendered":"\u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u0628\u06cc\u0627\u0645\u0648\u0632\u06cc\u062f: \u06cc\u06a9 \u062a\u0648\u0636\u06cc\u062d \u0633\u0627\u062f\u0647"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>  \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/p>\n<p>\u0645\u062a\u062f\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0632 \u0645\u0639\u0631\u0648\u0641 \u0627\u0633\u062a \u0631\u0639\u062f \u0648 \u0628\u0631\u0642 \u0645\u062a\u062f\u0647\u0627 (\u0686\u0648\u0646 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0646\u0627\u0645 \u062e\u0648\u062f \u062f\u0627\u0631\u0627\u06cc \u0632\u06cc\u0631\u062e\u0637 \u0647\u0627\u06cc \u062f\u0648\u06af\u0627\u0646\u0647 \u0647\u0633\u062a\u0646\u062f)\u060c \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0631\u0641\u062a\u0627\u0631 \u0627\u0634\u06cc\u0627\u0621 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645.  \u0622\u0646\u0647\u0627 \u0631\u0641\u062a\u0627\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0645\u0627 \u0631\u0627 \u0645\u0627\u0646\u0646\u062f \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062e\u0644\u06cc \u0639\u0645\u0644 \u06a9\u0646\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0648\u0628\u0644\u0627\u06af \u062f\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0645\u0641\u0635\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0648 \u0645\u062b\u0627\u0644 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0628\u06cc\u0627\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  1. \u0631\u0648\u0634 \u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0646\u062d\u0648\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u0627\u0635\u0644\u0627\u062d \u06cc\u0627 \u062d\u0630\u0641 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>  __getattr__  \u0648 __getattribute__<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645<\/p>\n<p>class LoggedAttributes:<br \/>\n    def __init__(self, name):<br \/>\n        self.name = name<\/p>\n<p>    def __getattr__(self, item):<br \/>\n        print(f&#8221;Accessing non-existent attribute: {item}&#8221;)<br \/>\n        return None<\/p>\n<p>    def __getattribute__(self, item):<br \/>\n        print(f&#8221;Getting attribute: {item}&#8221;)<br \/>\n        return super().__getattribute__(item)<\/p>\n<p># Usage<br \/>\nobj = LoggedAttributes(&#8220;Alice&#8221;)<br \/>\nprint(obj.name)  # Output: Getting attribute: name\\nAlice<br \/>\nprint(obj.age)   # Output: Accessing non-existent attribute: age\\nNone<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u062b\u0628\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u06cc\u06a9 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0631\u062f\u06cc\u0627\u0628\u06cc \u0632\u0645\u0627\u0646 \u0648 \u0646\u062d\u0648\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0627\u0635\u0644\u0627\u062d \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627.<\/p>\n<p>  __setattr__  \u0648 __delattr__<\/p>\n<p>\u0645\u062b\u0627\u0644: \u0627\u0635\u0644\u0627\u062d \u0648\u06cc\u0698\u06af\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc<\/p>\n<p>class Person:<br \/>\n    def __init__(self, name, age):<br \/>\n        self.name = name<br \/>\n        self.age = age<\/p>\n<p>    def __setattr__(self, key, value):<br \/>\n        if key == &#8220;age&#8221; and value  0:<br \/>\n            raise ValueError(&#8220;Age cannot be negative&#8221;)<br \/>\n        super().__setattr__(key, value)<\/p>\n<p>    def __delattr__(self, item):<br \/>\n        if item == &#8220;name&#8221;:<br \/>\n            raise AttributeError(&#8220;Can&#8217;t delete attribute &#8216;name'&#8221;)<br \/>\n        super().__delattr__(item)<\/p>\n<p># Usage<br \/>\np = Person(&#8220;Alice&#8221;, 30)<br \/>\np.age = 25  # Works fine<br \/>\n# p.age = -1  # Raises ValueError<br \/>\n# del p.name  # Raises AttributeError<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u0627\u062c\u0631\u0627\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645 \u06cc\u0627 \u062d\u0630\u0641 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627.<\/p>\n<p>  2. \u0631\u0648\u0634 \u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0628\u0647 \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0645\u0627\u0646\u0646\u062f \u0638\u0631\u0648\u0641 (\u0641\u0647\u0631\u0633\u062a\u060c \u0641\u0631\u0647\u0646\u06af \u0644\u063a\u062a \u0648 \u063a\u06cc\u0631\u0647) \u0631\u0641\u062a\u0627\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<p>  __len__\u060c __getitem__\u060c __setitem__\u060c __delitem__\u060c \u0648 __iter__<\/p>\n<p>__len__: \u0637\u0648\u0644 \u0638\u0631\u0641 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<br \/>\n__getitem__: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0639\u06cc\u0646 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n__setitem__: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0639\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n__delitem__: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0634\u062e\u0635 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n__iter__: \u06cc\u06a9 \u0634\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u0634\u06cc\u0621 \u0634\u0628\u06cc\u0647 \u0641\u0647\u0631\u0633\u062a \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>class CustomList:<br \/>\n    def __init__(self):<br \/>\n        self._items = []\n<p>    def __len__(self):<br \/>\n        return len(self._items)<\/p>\n<p>    def __getitem__(self, index):<br \/>\n        return self._items[index]\n<p>    def __setitem__(self, index, value):<br \/>\n        self._items[index] = value<\/p>\n<p>    def __delitem__(self, index):<br \/>\n        del self._items[index]\n<p>    def __iter__(self):<br \/>\n        return iter(self._items)<\/p>\n<p>    def append(self, item):<br \/>\n        self._items.append(item)<\/p>\n<p># Usage<br \/>\ncl = CustomList()<br \/>\ncl.append(1)<br \/>\ncl.append(2)<br \/>\ncl.append(3)<br \/>\nprint(len(cl))  # Output: 3<br \/>\nprint(cl[1])    # Output: 2<br \/>\nfor item in cl:<br \/>\n    print(item)  # Output: 1 2 3<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0645\u062c\u0645\u0648\u0639\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0641\u062a\u0627\u0631 \u062a\u062e\u0635\u0635\u06cc \u06cc\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u062f\u0627\u0631\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u0632 \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0647\u0631\u0633\u062a \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>  3. \u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc \u0648 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u062a\u062f\u0647\u0627 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0644\u0627\u0633 \u0634\u0645\u0627 \u0628\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0639\u062f\u062f\u06cc \u0648 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>  \u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc<\/p>\n<p>__add__\u060c __sub__\u060c __mul__\u060c __truediv__\u060c __floordiv__\u060c __mod__\u060c __pow__: \u0639\u0645\u0644\u06cc\u0627\u062a \u062d\u0633\u0627\u0628\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u06a9\u0644\u0627\u0633 \u0627\u0639\u062f\u0627\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>class Complex:<br \/>\n    def __init__(self, real, imag):<br \/>\n        self.real = real<br \/>\n        self.imag = imag<\/p>\n<p>    def __add__(self, other):<br \/>\n        return Complex(self.real + other.real, self.imag + other.imag)<\/p>\n<p>    def __sub__(self, other):<br \/>\n        return Complex(self.real &#8211; other.real, self.imag &#8211; other.imag)<\/p>\n<p>    def __repr__(self):<br \/>\n        return f&#8221;({self.real} + {self.imag}i)&#8221;<\/p>\n<p># Usage<br \/>\nc1 = Complex(1, 2)<br \/>\nc2 = Complex(3, 4)<br \/>\nprint(c1 + c2)  # Output: (4 + 6i)<br \/>\nprint(c1 &#8211; c2)  # Output: (-2 + -2i)<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0646\u0648\u0627\u0639 \u0639\u062f\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062f\u0627\u062f \u0645\u062e\u062a\u0644\u0637\u060c \u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u06cc\u0627 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0647\u0627.<\/p>\n<p>  \u0631\u0648\u0634 \u0647\u0627\u06cc \u0645\u0642\u0627\u06cc\u0633\u0647<\/p>\n<p>__eq__\u060c __ne__\u060c __lt__\u060c __le__\u060c __gt__\u060c __ge__: \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u0642\u0627\u06cc\u0633\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u0627\u062c\u0631\u0627\u06cc \u06a9\u0644 \u0633\u0641\u0627\u0631\u0634 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>from functools import total_ordering<\/p>\n<p>@total_ordering<br \/>\nclass Book:<br \/>\n    def __init__(self, title, author):<br \/>\n        self.title = title<br \/>\n        self.author = author<\/p>\n<p>    def __eq__(self, other):<br \/>\n        return (self.title, self.author) == (other.title, other.author)<\/p>\n<p>    def __lt__(self, other):<br \/>\n        return (self.title, self.author)  (other.title, other.author)<\/p>\n<p>    def __repr__(self):<br \/>\n        return f&#8221;{self.title} by {self.author}&#8221;<\/p>\n<p># Usage<br \/>\nbook1 = Book(&#8220;Title1&#8221;, &#8220;Author1&#8221;)<br \/>\nbook2 = Book(&#8220;Title2&#8221;, &#8220;Author2&#8221;)<br \/>\nbooks = [book2, book1]\nprint(sorted(books))  # Output: [Title1 by Author1, Title2 by Author2]\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u0627\u0645\u06a9\u0627\u0646 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u0634\u06cc\u0627\u0621 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0645\u0641\u06cc\u062f \u062f\u0631 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0645\u0627\u0646\u0646\u062f heaps\u060c \u062f\u0631\u062e\u062a\u200c\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u062f\u0648\u062f\u0648\u06cc\u06cc\u060c \u06cc\u0627 \u0635\u0631\u0641\u0627\u064b \u0647\u0646\u06af\u0627\u0645 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0634\u06cc\u0627\u0621 \u0633\u0641\u0627\u0631\u0634\u06cc.<\/p>\n<p>  4. \u0631\u0648\u0634 \u0638\u0631\u0648\u0641: \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc<\/p>\n<p>  \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0634\u06cc \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u06a9\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af \u0648 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u0646\u0638\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644: \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u063a\u06cc\u0631 \u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af<\/p>\n<p>class CaseInsensitiveDict:<br \/>\n    def __init__(self):<br \/>\n        self._data = {}<\/p>\n<p>    def __getitem__(self, key):<br \/>\n        return self._data[key.lower()]\n<p>    def __setitem__(self, key, value):<br \/>\n        self._data[key.lower()] = value<\/p>\n<p>    def __delitem__(self, key):<br \/>\n        del self._data[key.lower()]\n<p>    def __contains__(self, key):<br \/>\n        return key.lower() in self._data<\/p>\n<p>    def keys(self):<br \/>\n        return self._data.keys()<\/p>\n<p>    def items(self):<br \/>\n        return self._data.items()<\/p>\n<p>    def values(self):<br \/>\n        return self._data.values()<\/p>\n<p># Usage<br \/>\ncid = CaseInsensitiveDict()<br \/>\ncid[&#8220;Name&#8221;] = &#8220;Alice&#8221;<br \/>\nprint(cid[&#8220;name&#8221;])  # Output: Alice<br \/>\nprint(&#8220;NAME&#8221; in cid)  # Output: True<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc: \u0627\u06cc\u062c\u0627\u062f \u0641\u0631\u0647\u0646\u06af \u0644\u063a\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af\u060c \u0645\u0641\u06cc\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647<\/p>\n<p>\u0645\u062a\u062f\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0631\u0627\u0647 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0631\u0641\u062a\u0627\u0631 \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.  \u062f\u0631\u06a9 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0624\u062b\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0635\u0631\u06cc\u200c\u062a\u0631 \u06a9\u0646\u062f \u0648 \u0628\u0647\u200c\u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 \u062a\u0648\u0627\u0628\u0639 \u0648 \u0639\u0645\u0644\u06af\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f.  \u0686\u0647 \u062f\u0631 \u062d\u0627\u0644 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0646\u0648\u0627\u0639 \u0639\u062f\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u06cc\u0627 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0627\u0634\u06cc\u062f\u060c \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0627 \u062d\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f.<\/p>\n<div data-article-id=\"1952593\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C_%D8%A8%D8%A7_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%AC%D8%A7%D8%AF%D9%88%DB%8C%DB%8C_%D8%AF%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86\" >\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#1_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C_%D9%88%DB%8C%DA%98%DA%AF%DB%8C\" >1. \u0631\u0648\u0634 \u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#_getattr_%D9%88_getattribute\" >__getattr__  \u0648 __getattribute__<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#_setattr_%D9%88_delattr\" >__setattr__  \u0648 __delattr__<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#2_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D9%86%D8%AA%DB%8C%D9%86%D8%B1%DB%8C\" >2. \u0631\u0648\u0634 \u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#_len_%D8%8C_getitem_%D8%8C_setitem_%D8%8C_delitem_%D8%8C_%D9%88_iter\" >__len__\u060c __getitem__\u060c __setitem__\u060c __delitem__\u060c \u0648 __iter__<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#3_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%B9%D8%AF%D8%AF%DB%8C_%D9%88_%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87_%D8%A7%DB%8C\" >3. \u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc \u0648 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%B9%D8%AF%D8%AF%DB%8C\" >\u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87\" >\u0631\u0648\u0634 \u0647\u0627\u06cc \u0645\u0642\u0627\u06cc\u0633\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#4_%D8%B1%D9%88%D8%B4_%D8%B8%D8%B1%D9%88%D9%81_%D9%85%D9%88%D8%B1%D8%AF_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%B9%D9%85%D9%84%DB%8C\" >4. \u0631\u0648\u0634 \u0638\u0631\u0648\u0641: \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#%D8%AF%DB%8C%DA%A9%D8%B4%D9%86%D8%B1%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%A8%D8%A7_%DA%A9%D9%84%DB%8C%D8%AF%D9%87%D8%A7%DB%8C_%DA%A9%D9%88%DA%86%DA%A9_%D9%88_%D8%A8%D8%B2%D8%B1%DA%AF\" >\u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/learn-python-magic-methods-a-simple-explanation-21ap\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C_%D8%A8%D8%A7_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%AC%D8%A7%D8%AF%D9%88%DB%8C%DB%8C_%D8%AF%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86\"><\/span>\n<p>  \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u062a\u062f\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0632 \u0645\u0639\u0631\u0648\u0641 \u0627\u0633\u062a <strong>\u0631\u0639\u062f \u0648 \u0628\u0631\u0642<\/strong> \u0645\u062a\u062f\u0647\u0627 (\u0686\u0648\u0646 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0646\u0627\u0645 \u062e\u0648\u062f \u062f\u0627\u0631\u0627\u06cc \u0632\u06cc\u0631\u062e\u0637 \u0647\u0627\u06cc \u062f\u0648\u06af\u0627\u0646\u0647 \u0647\u0633\u062a\u0646\u062f)\u060c \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0631\u0641\u062a\u0627\u0631 \u0627\u0634\u06cc\u0627\u0621 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645.  \u0622\u0646\u0647\u0627 \u0631\u0641\u062a\u0627\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0645\u0627 \u0631\u0627 \u0645\u0627\u0646\u0646\u062f \u0627\u0646\u0648\u0627\u0639 \u062f\u0627\u062e\u0644\u06cc \u0639\u0645\u0644 \u06a9\u0646\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0648\u0628\u0644\u0627\u06af \u062f\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0645\u0641\u0635\u0644\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0648 \u0645\u062b\u0627\u0644 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648 \u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627 \u0628\u06cc\u0627\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C_%D9%88%DB%8C%DA%98%DA%AF%DB%8C\"><\/span>\n<p>  1. <strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0646\u062d\u0648\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u0627\u0635\u0644\u0627\u062d \u06cc\u0627 \u062d\u0630\u0641 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"_getattr_%D9%88_getattribute\"><\/span>\n<p>  <code>__getattr__<\/code>  \u0648 <code>__getattribute__<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u0645\u062b\u0627\u0644: \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">LoggedAttributes<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">name<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__getattr__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span><span class=\"p\">):<\/span>\n        <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Accessing non-existent attribute: <\/span><span class=\"si\">{<\/span><span class=\"n\">item<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"bp\">None<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__getattribute__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span><span class=\"p\">):<\/span>\n        <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Getting attribute: <\/span><span class=\"si\">{<\/span><span class=\"n\">item<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">super<\/span><span class=\"p\">().<\/span><span class=\"nf\">__getattribute__<\/span><span class=\"p\">(<\/span><span class=\"n\">item<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">obj<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LoggedAttributes<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Alice<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">obj<\/span><span class=\"p\">.<\/span><span class=\"n\">name<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: Getting attribute: name\\nAlice\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">obj<\/span><span class=\"p\">.<\/span><span class=\"n\">age<\/span><span class=\"p\">)<\/span>   <span class=\"c1\"># Output: Accessing non-existent attribute: age\\nNone\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u062b\u0628\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc \u062f\u0631 \u06cc\u06a9 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0631\u062f\u06cc\u0627\u0628\u06cc \u0632\u0645\u0627\u0646 \u0648 \u0646\u062d\u0648\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0627\u0635\u0644\u0627\u062d \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"_setattr_%D9%88_delattr\"><\/span>\n<p>  <code>__setattr__<\/code>  \u0648 <code>__delattr__<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u0645\u062b\u0627\u0644: \u0627\u0635\u0644\u0627\u062d \u0648\u06cc\u0698\u06af\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Person<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"p\">,<\/span> <span class=\"n\">age<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">name<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">age<\/span> <span class=\"o\">=<\/span> <span class=\"n\">age<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__setattr__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"p\">,<\/span> <span class=\"n\">value<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">key<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">age<\/span><span class=\"sh\">\"<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">value<\/span> <span class=\"o\"> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">raise<\/span> <span class=\"nc\">ValueError<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Age cannot be negative<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nf\">super<\/span><span class=\"p\">().<\/span><span class=\"nf\">__setattr__<\/span><span class=\"p\">(<\/span><span class=\"n\">key<\/span><span class=\"p\">,<\/span> <span class=\"n\">value<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__delattr__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">item<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">name<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">raise<\/span> <span class=\"nc\">AttributeError<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Can<\/span><span class=\"sh\">'<\/span><span class=\"s\">t delete attribute <\/span><span class=\"sh\">'<\/span><span class=\"s\">name<\/span><span class=\"sh\">'\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"nf\">super<\/span><span class=\"p\">().<\/span><span class=\"nf\">__delattr__<\/span><span class=\"p\">(<\/span><span class=\"n\">item<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">p<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Person<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Alice<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">30<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">p<\/span><span class=\"p\">.<\/span><span class=\"n\">age<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">25<\/span>  <span class=\"c1\"># Works fine\n# p.age = -1  # Raises ValueError\n# del p.name  # Raises AttributeError\n<\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u0627\u062c\u0631\u0627\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645 \u06cc\u0627 \u062d\u0630\u0641 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D9%86%D8%AA%DB%8C%D9%86%D8%B1%DB%8C\"><\/span>\n<p>  2. <strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0628\u0647 \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0645\u0627\u0646\u0646\u062f \u0638\u0631\u0648\u0641 (\u0641\u0647\u0631\u0633\u062a\u060c \u0641\u0631\u0647\u0646\u06af \u0644\u063a\u062a \u0648 \u063a\u06cc\u0631\u0647) \u0631\u0641\u062a\u0627\u0631 \u06a9\u0646\u0646\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"_len_%D8%8C_getitem_%D8%8C_setitem_%D8%8C_delitem_%D8%8C_%D9%88_iter\"><\/span>\n<p>  <code>__len__<\/code>\u060c <code>__getitem__<\/code>\u060c <code>__setitem__<\/code>\u060c <code>__delitem__<\/code>\u060c \u0648 <code>__iter__<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<p><code>__len__<\/code>: \u0637\u0648\u0644 \u0638\u0631\u0641 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>__getitem__<\/code>: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0639\u06cc\u0646 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>__setitem__<\/code>: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0639\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>__delitem__<\/code>: \u06cc\u06a9 \u0645\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0634\u0627\u062e\u0635 \u06cc\u0627 \u06a9\u0644\u06cc\u062f \u0645\u0634\u062e\u0635 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p><code>__iter__<\/code>: \u06cc\u06a9 \u0634\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0645\u062b\u0627\u0644: \u0634\u06cc\u0621 \u0634\u0628\u06cc\u0647 \u0641\u0647\u0631\u0633\u062a \u0633\u0641\u0627\u0631\u0634\u06cc<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">CustomList<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[]<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__len__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__getitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">index<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">[<\/span><span class=\"n\">index<\/span><span class=\"p\">]<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__setitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">index<\/span><span class=\"p\">,<\/span> <span class=\"n\">value<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">[<\/span><span class=\"n\">index<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">value<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__delitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">index<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">del<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">[<\/span><span class=\"n\">index<\/span><span class=\"p\">]<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__iter__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">iter<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_items<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">item<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">cl<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">CustomList<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">cl<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">cl<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">cl<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">cl<\/span><span class=\"p\">))<\/span>  <span class=\"c1\"># Output: 3\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">cl<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>    <span class=\"c1\"># Output: 2\n<\/span><span class=\"k\">for<\/span> <span class=\"n\">item<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">cl<\/span><span class=\"p\">:<\/span>\n    <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">item<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: 1 2 3\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0645\u062c\u0645\u0648\u0639\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0641\u062a\u0627\u0631 \u062a\u062e\u0635\u0635\u06cc \u06cc\u0627 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u062f\u0627\u0631\u062f \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0627\u0632 \u0639\u0645\u0644\u06cc\u0627\u062a \u0641\u0647\u0631\u0633\u062a \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%B9%D8%AF%D8%AF%DB%8C_%D9%88_%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87_%D8%A7%DB%8C\"><\/span>\n<p>  3. <strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc \u0648 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0645\u062a\u062f\u0647\u0627 \u0646\u062d\u0648\u0647 \u062a\u0639\u0627\u0645\u0644 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0644\u0627\u0633 \u0634\u0645\u0627 \u0628\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u0639\u062f\u062f\u06cc \u0648 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D8%B9%D8%AF%D8%AF%DB%8C\"><\/span>\n<p>  <strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u0639\u062f\u062f\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<code>__add__<\/code>\u060c <code>__sub__<\/code>\u060c <code>__mul__<\/code>\u060c <code>__truediv__<\/code>\u060c <code>__floordiv__<\/code>\u060c <code>__mod__<\/code>\u060c <code>__pow__<\/code>: \u0639\u0645\u0644\u06cc\u0627\u062a \u062d\u0633\u0627\u0628\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><strong>\u0645\u062b\u0627\u0644: \u06a9\u0644\u0627\u0633 \u0627\u0639\u062f\u0627\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Complex<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">real<\/span><span class=\"p\">,<\/span> <span class=\"n\">imag<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span> <span class=\"o\">=<\/span> <span class=\"n\">real<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span> <span class=\"o\">=<\/span> <span class=\"n\">imag<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__add__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nc\">Complex<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span> <span class=\"o\">+<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span><span class=\"p\">,<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span> <span class=\"o\">+<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__sub__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nc\">Complex<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span> <span class=\"o\">-<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span><span class=\"p\">,<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span> <span class=\"o\">-<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__repr__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">(<\/span><span class=\"si\">{<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">real<\/span><span class=\"si\">}<\/span><span class=\"s\"> + <\/span><span class=\"si\">{<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">imag<\/span><span class=\"si\">}<\/span><span class=\"s\">i)<\/span><span class=\"sh\">\"<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">c1<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Complex<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">c2<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Complex<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">c1<\/span> <span class=\"o\">+<\/span> <span class=\"n\">c2<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: (4 + 6i)\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">c1<\/span> <span class=\"o\">-<\/span> <span class=\"n\">c2<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: (-2 + -2i)\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u0646\u0648\u0627\u0639 \u0639\u062f\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062f\u0627\u062f \u0645\u062e\u062a\u0644\u0637\u060c \u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u06cc\u0627 \u0645\u0627\u062a\u0631\u06cc\u0633 \u0647\u0627.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%B4_%D9%87%D8%A7%DB%8C_%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87\"><\/span>\n<p>  <strong>\u0631\u0648\u0634 \u0647\u0627\u06cc \u0645\u0642\u0627\u06cc\u0633\u0647<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\n<code>__eq__<\/code>\u060c <code>__ne__<\/code>\u060c <code>__lt__<\/code>\u060c <code>__le__<\/code>\u060c <code>__gt__<\/code>\u060c <code>__ge__<\/code>: \u0639\u0645\u0644\u06cc\u0627\u062a \u0645\u0642\u0627\u06cc\u0633\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><strong>\u0645\u062b\u0627\u0644: \u0627\u062c\u0631\u0627\u06cc \u06a9\u0644 \u0633\u0641\u0627\u0631\u0634 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0633\u0641\u0627\u0631\u0634\u06cc<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">functools<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">total_ordering<\/span>\n\n<span class=\"nd\">@total_ordering<\/span>\n<span class=\"k\">class<\/span> <span class=\"nc\">Book<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">title<\/span><span class=\"p\">,<\/span> <span class=\"n\">author<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span> <span class=\"o\">=<\/span> <span class=\"n\">title<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span> <span class=\"o\">=<\/span> <span class=\"n\">author<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__eq__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">):<\/span>\n        <span class=\"nf\">return <\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">,<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"p\">(<\/span><span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__lt__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">):<\/span>\n        <span class=\"nf\">return <\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">,<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span><span class=\"p\">)<\/span> <span class=\"o\"> <span class=\"p\">(<\/span><span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span><span class=\"p\">,<\/span> <span class=\"n\">other<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__repr__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"si\">{<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">title<\/span><span class=\"si\">}<\/span><span class=\"s\"> by <\/span><span class=\"si\">{<\/span><span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">author<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">book1<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Book<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Title1<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Author1<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">book2<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Book<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Title2<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Author2<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">books<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">book2<\/span><span class=\"p\">,<\/span> <span class=\"n\">book1<\/span><span class=\"p\">]<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">sorted<\/span><span class=\"p\">(<\/span><span class=\"n\">books<\/span><span class=\"p\">))<\/span>  <span class=\"c1\"># Output: [Title1 by Author1, Title2 by Author2]\n<\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u0627\u0645\u06a9\u0627\u0646 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u06cc\u0627 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u0634\u06cc\u0627\u0621 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0645\u0641\u06cc\u062f \u062f\u0631 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0645\u0627\u0646\u0646\u062f heaps\u060c \u062f\u0631\u062e\u062a\u200c\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u062f\u0648\u062f\u0648\u06cc\u06cc\u060c \u06cc\u0627 \u0635\u0631\u0641\u0627\u064b \u0647\u0646\u06af\u0627\u0645 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0634\u06cc\u0627\u0621 \u0633\u0641\u0627\u0631\u0634\u06cc.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_%D8%B1%D9%88%D8%B4_%D8%B8%D8%B1%D9%88%D9%81_%D9%85%D9%88%D8%B1%D8%AF_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%B9%D9%85%D9%84%DB%8C\"><\/span>\n<p>  4. <strong>\u0631\u0648\u0634 \u0638\u0631\u0648\u0641: \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%D8%AF%DB%8C%DA%A9%D8%B4%D9%86%D8%B1%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%A8%D8%A7_%DA%A9%D9%84%DB%8C%D8%AF%D9%87%D8%A7%DB%8C_%DA%A9%D9%88%DA%86%DA%A9_%D9%88_%D8%A8%D8%B2%D8%B1%DA%AF\"><\/span>\n<p>  <strong>\u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0634\u06cc \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u06a9\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af \u0648 \u06a9\u0648\u0686\u06a9 \u062f\u0631 \u0646\u0638\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/p>\n<p><strong>\u0645\u062b\u0627\u0644: \u062f\u06cc\u06a9\u0634\u0646\u0631\u06cc \u063a\u06cc\u0631 \u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">CaseInsensitiveDict<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{}<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__getitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">[<\/span><span class=\"n\">key<\/span><span class=\"p\">.<\/span><span class=\"nf\">lower<\/span><span class=\"p\">()]<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__setitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"p\">,<\/span> <span class=\"n\">value<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">[<\/span><span class=\"n\">key<\/span><span class=\"p\">.<\/span><span class=\"nf\">lower<\/span><span class=\"p\">()]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">value<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__delitem__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">del<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">[<\/span><span class=\"n\">key<\/span><span class=\"p\">.<\/span><span class=\"nf\">lower<\/span><span class=\"p\">()]<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">__contains__<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">key<\/span><span class=\"p\">.<\/span><span class=\"nf\">lower<\/span><span class=\"p\">()<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">keys<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">.<\/span><span class=\"nf\">keys<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">items<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">.<\/span><span class=\"nf\">items<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">values<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_data<\/span><span class=\"p\">.<\/span><span class=\"nf\">values<\/span><span class=\"p\">()<\/span>\n\n<span class=\"c1\"># Usage\n<\/span><span class=\"n\">cid<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">CaseInsensitiveDict<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">cid<\/span><span class=\"p\">[<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Name<\/span><span class=\"sh\">\"<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Alice<\/span><span class=\"sh\">\"<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">cid<\/span><span class=\"p\">[<\/span><span class=\"sh\">\"<\/span><span class=\"s\">name<\/span><span class=\"sh\">\"<\/span><span class=\"p\">])<\/span>  <span class=\"c1\"># Output: Alice\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">NAME<\/span><span class=\"sh\">\"<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">cid<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: True\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc:<\/strong> \u0627\u06cc\u062c\u0627\u062f \u0641\u0631\u0647\u0646\u06af \u0644\u063a\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af\u060c \u0645\u0641\u06cc\u062f \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0631\u0648\u062f\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u062a\u062f\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0631\u0627\u0647 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0628\u0631\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0631\u0641\u062a\u0627\u0631 \u0627\u0634\u06cc\u0627\u0621 \u0634\u0645\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.  \u062f\u0631\u06a9 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0624\u062b\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u0628\u0635\u0631\u06cc\u200c\u062a\u0631 \u06a9\u0646\u062f \u0648 \u0628\u0647\u200c\u0637\u0648\u0631 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0627 \u062a\u0648\u0627\u0628\u0639 \u0648 \u0639\u0645\u0644\u06af\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u062f\u063a\u0627\u0645 \u0634\u0648\u062f.  \u0686\u0647 \u062f\u0631 \u062d\u0627\u0644 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0646\u0648\u0627\u0639 \u0639\u062f\u062f\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u06cc\u0627 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0628\u0627\u0634\u06cc\u062f\u060c \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u062a\u0627 \u062d\u062f \u0632\u06cc\u0627\u062f\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0645\u062a\u062f\u0647\u0627\u06cc \u062c\u0627\u062f\u0648\u06cc\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06a9\u0647 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0632 \u0645\u0639\u0631\u0648\u0641 \u0627\u0633\u062a \u0631\u0639\u062f \u0648 \u0628\u0631\u0642 \u0645\u062a\u062f\u0647\u0627 (\u0686\u0648\u0646 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648 \u0627\u0646\u062a\u0647\u0627\u06cc \u0646\u0627\u0645 \u062e\u0648\u062f \u062f\u0627\u0631\u0627\u06cc \u0632\u06cc\u0631\u062e\u0637 \u0647\u0627\u06cc \u062f\u0648\u06af\u0627\u0646\u0647 \u0647\u0633\u062a\u0646\u062f)\u060c \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0631\u0641\u062a\u0627\u0631 \u0627\u0634\u06cc\u0627\u0621 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":72715,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-72714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=72714"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/72714\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/72715"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=72714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=72714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=72714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}