{"id":76897,"date":"2024-09-16T08:06:16","date_gmt":"2024-09-16T04:36:16","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/"},"modified":"2024-09-16T08:06:16","modified_gmt":"2024-09-16T04:36:16","slug":"mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/","title":{"rendered":"\u062a\u0633\u0644\u0637 \u0628\u0631 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646: \u0627\u0632 \u0645\u0628\u0627\u0646\u06cc \u062a\u0627 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>  \u0645\u0642\u062f\u0645\u0647<\/p>\n<p>\u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u062f\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u200c\u062a\u0631 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f. \u062f\u0631\u06a9 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u200b\u200b\u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0637\u062d \u0628\u0639\u062f\u06cc \u0645\u06cc\u200c\u0628\u0631\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u062b\u0628\u062a\u200c\u0646\u0627\u0645\u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0648 \u062d\u0627\u0641\u0638\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f:<\/p>\n<p>\u062a\u0639\u0637\u06cc\u0644\u06cc \u0686\u06cc\u0633\u062a\u061f<br \/>\n\u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0633\u062a\u0646 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<br \/>\n\u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0686\u06cc\u0633\u062a\u061f<br \/>\n\u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<br \/>\n\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc<br \/>\n\u0646\u0648\u0634\u062a\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<br \/>\n\u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0628\u0627 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u062f\u0631\u06a9 \u06a9\u0627\u0645\u0644\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u062f\u0631 \u06a9\u062f \u062e\u0648\u062f \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062a\u0648\u0627\u0628\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0648\u0627\u0698\u06af\u0627\u0646\u06cc \u0645\u062d\u0635\u0648\u0631 \u062e\u0648\u062f \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u062d\u062a\u06cc \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u062c\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a. \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u062d\u0627\u0644\u062a \u0628\u06cc\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u0627\u0633\u062a \u06a9\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc\u06cc \u0645\u0641\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646\u200c\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062d\u0641\u0638 \u0645\u062d\u062a\u0648\u0627\u06cc\u06cc \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0632 \u0633\u0647 \u062c\u0632\u0621 \u0627\u0635\u0644\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u06cc\u06a9 \u062a\u0627\u0628\u0639 \u062a\u0648 \u062f\u0631 \u062a\u0648<br \/>\n\u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0622\u0632\u0627\u062f \u062f\u0631 \u062a\u0627\u0628\u0639 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f\u0647<br \/>\n\u0627\u062c\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062a\u0627\u0628\u0639 \u062a\u0648\u062f\u0631\u062a\u0648 \u0647\u0646\u0648\u0632 \u0648\u0636\u0639\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631 \u0622\u0632\u0627\u062f \u0631\u0627 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u06cc \u0622\u0648\u0631\u062f.<\/p>\n<p>  \u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u0628\u0633\u062a\u0647<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0633\u0627\u062f\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>def outer_function(message):<br \/>\n    def inner_function():<br \/>\n        print(message)<br \/>\n    return inner_function<\/p>\n<p># Create a closure<br \/>\nclosure = outer_function(&#8220;Hello, World!&#8221;)<br \/>\nclosure()  # Output: Hello, World!<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c inner_function \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 message \u0645\u062a\u063a\u06cc\u0631 \u0627\u0632 outer_function\u060c \u062d\u062a\u06cc \u0628\u0639\u062f \u0627\u0632 outer_function \u0627\u062c\u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u062a\u0627\u0628\u0639 \u062f\u0631\u0648\u0646\u06cc &#8220;\u0628\u0631 \u0631\u0648\u06cc&#8221; \u0645\u062a\u063a\u06cc\u0631 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0628\u0633\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648 \u0627\u0635\u0637\u0644\u0627\u062d \u0628\u0633\u062a\u0647 \u0634\u062f\u0646.<\/p>\n<p>  \u0646\u062d\u0648\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644<\/p>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0628\u0627 \u06af\u0631\u0641\u062a\u0646 \u0648\u0636\u0639\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0622\u0632\u0627\u062f \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0622\u0646\u0647\u0627 \u062f\u0631 \u0634\u06cc \u062a\u0627\u0628\u0639 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f __closure__ \u0648\u06cc\u0698\u06af\u06cc<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0631\u0627 \u0627\u0632 \u0645\u062b\u0627\u0644 \u0642\u0628\u0644\u06cc \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<p>print(closure.__closure__[0].cell_contents)  # Output: Hello, World!<\/p>\n<p>\u0627\u06cc\u0646 __closure__ \u0648\u06cc\u0698\u06af\u06cc \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f. \u0647\u0631 \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u06cc\u06a9 &#8220;\u0633\u0644\u0648\u0644&#8221; \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f cell_contents.<\/p>\n<p>  \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0628\u0633\u062a\u0646 \u0647\u0627 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a \u0628\u06cc\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u06cc\u0627 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0646\u062f \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627\u06cc\u062c \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>  1. \u06a9\u0627\u0631\u062e\u0627\u0646\u062c\u0627\u062a \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u067e\u0648\u06cc\u0627 \u062a\u0648\u0627\u0628\u0639 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>def multiplier(factor):<br \/>\n    def multiply_by_factor(number):<br \/>\n        return number * factor<br \/>\n    return multiply_by_factor<\/p>\n<p>times_two = multiplier(2)<br \/>\ntimes_three = multiplier(3)<\/p>\n<p>print(times_two(5))  # Output: 10<br \/>\nprint(times_three(5))  # Output: 15<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c multiplier \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u06cc\u06a9 \u0639\u062f\u062f \u0645\u0639\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u062e\u0627\u0635 \u0636\u0631\u0628 \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0639\u0637\u06cc\u0644\u06cc \u0647\u0627 times_two \u0648 times_three \u0627\u0631\u0632\u0634 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f factor \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0645\u062d\u0635\u0648\u0631 \u0622\u0646\u0647\u0627.<\/p>\n<p>  2. \u06a9\u067e\u0633\u0648\u0644\u0627\u0633\u06cc\u0648\u0646<\/p>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0641\u0634\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a \u062f\u0627\u062e\u0644\u06cc \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0645\u0641\u0647\u0648\u0645 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062e\u0635\u0648\u0635\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0627\u0633\u062a.<\/p>\n<p>def counter():<br \/>\n    count = 0<br \/>\n    def increment():<br \/>\n        nonlocal count<br \/>\n        count += 1<br \/>\n        return count<br \/>\n    return increment<\/p>\n<p>counter_fn = counter()<br \/>\nprint(counter_fn())  # Output: 1<br \/>\nprint(counter_fn())  # Output: 2<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c count \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0633\u062a\u0647 \u0645\u062d\u0635\u0648\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0648 \u062a\u0646\u0647\u0627 increment \u062a\u0627\u0628\u0639 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0642\u062f\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f.<\/p>\n<p>  \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>\u0627\u0644\u0641 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u062a\u0627\u0628\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0631\u0641\u062a\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u062f \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0648 \u0631\u0648\u0634 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u0631\u0648\u0646\u062f @ \u0646\u0645\u0627\u062f \u0628\u0627\u0644\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062a\u0627\u0628\u0639<\/p>\n<p>  \u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631<\/p>\n<p>def decorator_function(original_function):<br \/>\n    def wrapper_function():<br \/>\n        print(f&#8221;Wrapper executed before {original_function.__name__}()&#8221;)<br \/>\n        return original_function()<br \/>\n    return wrapper_function<\/p>\n<p>@decorator_function<br \/>\ndef say_hello():<br \/>\n    print(&#8220;Hello!&#8221;)<\/p>\n<p>say_hello()<\/p>\n<p># Output:<br \/>\n# Wrapper executed before say_hello()<br \/>\n# Hello!<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627\u060c decorator_function \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f say_hello\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0636\u0627\u0641\u06cc \u0642\u0628\u0644 \u0627\u0632 say_hello() \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>  \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/p>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0627\u0633\u0627\u0633\u0627\u064b \u0642\u0646\u062f \u0646\u062d\u0648\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0631\u0627\u06cc\u062c \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f: \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u062a\u0628\u0647 \u0628\u0627\u0644\u0627\u062a\u0631\u060c \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f. \u0648\u0642\u062a\u06cc \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc @decorator\u060c \u0645\u0639\u0627\u062f\u0644 \u0627\u0633\u062a \u0628\u0627:<\/p>\n<p>say_hello = decorator_function(say_hello)<\/p>\n<p>\u062a\u0627\u0628\u0639 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u062f\u06cc\u062f \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f (wrapper_function) \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>  \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/p>\n<p>\u0627\u06af\u0631 \u062a\u0627\u0628\u0639\u06cc \u06a9\u0647 \u062a\u0632\u0626\u06cc\u0646 \u0645\u06cc\u200c\u0634\u0648\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u06af\u06cc\u0631\u062f\u060c \u062a\u0627\u0628\u0639 wrapper \u0628\u0627\u06cc\u062f \u0628\u067e\u0630\u06cc\u0631\u062f *args \u0648 **kwargs \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0647\u0627.<\/p>\n<p>def decorator_function(original_function):<br \/>\n    def wrapper_function(*args, **kwargs):<br \/>\n        print(f&#8221;Wrapper executed before {original_function.__name__}()&#8221;)<br \/>\n        return original_function(*args, **kwargs)<br \/>\n    return wrapper_function<\/p>\n<p>@decorator_function<br \/>\ndef display_info(name, age):<br \/>\n    print(f&#8221;display_info ran with arguments ({name}, {age})&#8221;)<\/p>\n<p>display_info(&#8220;John&#8221;, 25)<\/p>\n<p># Output:<br \/>\n# Wrapper executed before display_info()<br \/>\n# display_info ran with arguments (John, 25)<\/p>\n<p>  \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/p>\n<p>\u067e\u0627\u06cc\u062a\u0648\u0646 \u0686\u0646\u062f\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u062f\u0627\u062e\u0644\u06cc \u0645\u0627\u0646\u0646\u062f @staticmethod\u060c @classmethod\u060c \u0648 @property.<\/p>\n<p>  @staticmethod  \u0648 @classmethod<\/p>\n<p>\u0627\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u06a9\u0647 \u06cc\u0627 \u0628\u0647 \u0646\u0645\u0648\u0646\u0647 \u0645\u062d\u062f\u0648\u062f \u0646\u0645\u06cc \u0634\u0648\u0646\u062f (@staticmethod) \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u062e\u0648\u062f \u06a9\u0644\u0627\u0633 (@classmethod).<\/p>\n<p>class MyClass:<br \/>\n    @staticmethod<br \/>\n    def static_method():<br \/>\n        print(&#8220;Static method called&#8221;)<\/p>\n<p>    @classmethod<br \/>\n    def class_method(cls):<br \/>\n        print(f&#8221;Class method called from {cls}&#8221;)<\/p>\n<p>MyClass.static_method()   # Output: Static method called<br \/>\nMyClass.class_method()    # Output: Class method called from &lt;class &#8216;__main__.MyClass&#8217;&gt;<\/p>\n<p>  @property<\/p>\n<p>\u0627\u06cc\u0646 @property decorator \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0631\u0648\u0634\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627\u0634\u062f.<\/p>\n<p>class Circle:<br \/>\n    def __init__(self, radius):<br \/>\n        self._radius = radius<\/p>\n<p>    @property<br \/>\n    def radius(self):<br \/>\n        return self._radius<\/p>\n<p>    @radius.setter<br \/>\n    def radius(self, value):<br \/>\n        if value &lt;= 0:<br \/>\n            raise ValueError(&#8220;Radius must be positive&#8221;)<br \/>\n        self._radius = value<\/p>\n<p>c = Circle(5)<br \/>\nprint(c.radius)  # Output: 5<\/p>\n<p>c.radius = 10<br \/>\nprint(c.radius)  # Output: 10<\/p>\n<p>  \u0646\u0648\u0634\u062a\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u06cc\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0646\u0628\u0627\u0634\u062a\u0647 \u06a9\u0631\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0686\u0646\u062f\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648\u0627\u062d\u062f \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0645\u062b\u0627\u0644: \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<p>import time<\/p>\n<p>def timer_decorator(func):<br \/>\n    def wrapper(*args, **kwargs):<br \/>\n        start_time = time.time()<br \/>\n        result = func(*args, **kwargs)<br \/>\n        end_time = time.time()<br \/>\n        print(f&#8221;{func.__name__} ran in {end_time &#8211; start_time:.4f} seconds&#8221;)<br \/>\n        return result<br \/>\n    return wrapper<\/p>\n<p>@timer_decorator<br \/>\ndef calculate_square(numbers):<br \/>\n    result = [n * n for n in numbers]\n    return result<\/p>\n<p>nums = range(1, 1000000)<br \/>\ncalculate_square(nums)<\/p>\n<p>  \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/p>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0646\u06cc\u0632 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0647 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0645\u062b\u0627\u0644: Logger \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc<\/p>\n<p>def logger_decorator(message):<br \/>\n    def decorator(func):<br \/>\n        def wrapper(*args, **kwargs):<br \/>\n            print(f&#8221;{message}: Executing {func.__name__}&#8221;)<br \/>\n            return func(*args, **kwargs)<br \/>\n        return wrapper<br \/>\n    return decorator<\/p>\n<p>@logger_decorator(&#8220;DEBUG&#8221;)<br \/>\ndef greet(name):<br \/>\n    print(f&#8221;Hello, {name}!&#8221;)<\/p>\n<p>greet(&#8220;Alice&#8221;)<\/p>\n<p># Output:<br \/>\n# DEBUG: Executing greet<br \/>\n# Hello, Alice!<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 logger_decorator \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0645\u06cc \u067e\u06cc\u0686\u062f greet \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0636\u0627\u0641\u06cc.<\/p>\n<p>  \u0645\u0641\u0627\u0647\u06cc\u0645 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647<\/p>\n<p>  1. \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u062a\u0632\u0626\u06cc\u0646<\/p>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0628\u0644\u06a9\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0647\u0627 \u0646\u06cc\u0632 \u0628\u0647 \u06a9\u0627\u0631 \u0628\u0631\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0644 \u06a9\u0644\u0627\u0633 \u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06cc\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u0646\u062f.<\/p>\n<p>def add_str_repr(cls):<br \/>\n    cls.__str__ = lambda self: f&#8221;Instance of {cls.__name__}&#8221;<br \/>\n    return cls<\/p>\n<p>@add_str_repr<br \/>\nclass Dog:<br \/>\n    pass<\/p>\n<p>dog = Dog()<br \/>\nprint(dog)  # Output: Instance of Dog<\/p>\n<p>  2. \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/p>\n<p>\u062d\u0627\u0641\u0638\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0646\u062a\u0627\u06cc\u062c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u06af\u0631\u0627\u0646 \u0642\u06cc\u0645\u062a \u062f\u0631 \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0645\u0627\u0633\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0628\u0627 \u0647\u0645\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u0648\u0646\u062f.<\/p>\n<p>def memoize(func):<br \/>\n    cache = {}<br \/>\n    def wrapper(*args):<br \/>\n        if args not in cache:<br \/>\n            cache[args] = func(*args)<br \/>\n        return cache[args]\n    return wrapper<\/p>\n<p>@memoize<br \/>\ndef fibonacci(n):<\/p>\n<p> if n in [0, 1]:<br \/>\n        return n<br \/>\n    return fibonacci(n &#8211; 1) + fibonacci(n &#8211; 2)<\/p>\n<p>print(fibonacci(30))  # Output: 832040<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>\u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f\u0647\u0627\u06cc \u062a\u0645\u06cc\u0632\u062a\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0628\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062d\u0627\u0644\u062a \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0631\u0641\u062a\u0627\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0648 \u0631\u0648\u0634\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0634\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u06cc\u0627 \u06af\u0633\u062a\u0631\u0634 \u062f\u0647\u06cc\u062f. \u0686\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627 \u062d\u0627\u0641\u0638\u0647\u200c\u06af\u0630\u0627\u0631\u06cc\u060c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc \u0628\u0627\u0634\u06cc\u062f\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0636\u0631\u0648\u0631\u06cc \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u200b\u200b\u0642\u0627\u062f\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f \u06a9\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0635\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0627 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u0648 \u06a9\u0634\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0632\u06cc\u0628\u0627\u062a\u0631 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631 \u06a9\u0646\u0646\u062f!<\/p>\n<p>  \u0628\u0627 \u0645\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646<\/p>\n<p>GitHub<br \/>\n\u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 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=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D9%82%D8%AF%D9%85%D9%87\" >\u0645\u0642\u062f\u0645\u0647<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0686\u06cc\u0633\u062a\u061f<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%B5%D9%84%DB%8C_%DB%8C%DA%A9_%D8%A8%D8%B3%D8%AA%D9%87\" >\u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u0628\u0633\u062a\u0647<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%86%D8%AD%D9%88%D9%87_%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%D8%AF%D8%B1_%D8%AF%D8%A7%D8%AE%D9%84\" >\u0646\u062d\u0648\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%A7%D8%B2_%D9%85%D9%88%D8%A7%D8%B1%D8%AF_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#1_%DA%A9%D8%A7%D8%B1%D8%AE%D8%A7%D9%86%D8%AC%D8%A7%D8%AA_%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF%DB%8C\" >1. \u06a9\u0627\u0631\u062e\u0627\u0646\u062c\u0627\u062a \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#2_%DA%A9%D9%BE%D8%B3%D9%88%D9%84%D8%A7%D8%B3%DB%8C%D9%88%D9%86\" >2. \u06a9\u067e\u0633\u0648\u0644\u0627\u0633\u06cc\u0648\u0646<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0686\u06cc\u0633\u062a\u061f<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%B5%D9%84%DB%8C_%DB%8C%DA%A9_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1\" >\u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%86%D8%AD%D9%88%D9%87_%DA%A9%D8%A7%D8%B1_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7\" >\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AF%D9%84%D8%A7%D9%84\" >\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/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\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C_%D8%AF%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86\" >\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#staticmethod_%D9%88_classmethod\" >@staticmethod  \u0648 @classmethod<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#property\" >@property<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\" >\u0646\u0648\u0634\u062a\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D8%AB%D8%A7%D9%84_%D8%B2%D9%85%D8%A7%D9%86_%D8%A8%D9%86%D8%AF%DB%8C_%DB%8C%DA%A9_%D8%AA%D8%A7%D8%A8%D8%B9\" >\u0645\u062b\u0627\u0644: \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AF%D9%84%D8%A7%D9%84-2\" >\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D8%AB%D8%A7%D9%84_Logger_%D8%A8%D8%A7_%D9%BE%DB%8C%D8%A7%D9%85_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\" >\u0645\u062b\u0627\u0644: Logger \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1_%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87\" >\u0645\u0641\u0627\u0647\u06cc\u0645 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#1_%DA%A9%D9%84%D8%A7%D8%B3_%D9%87%D8%A7%DB%8C_%D8%AA%D8%B2%D8%A6%DB%8C%D9%86\" >1. \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u062a\u0632\u0626\u06cc\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#2_%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D8%A8%D8%A7_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7\" >2. \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/nabfollower.com\/blog\/mastering-closures-and-decorators-in-python-from-basics-to-advanced-16o\/#%D8%A8%D8%A7_%D9%85%D9%86_%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7_%D8%A8%D8%B1%D9%82%D8%B1%D8%A7%D8%B1_%DA%A9%D9%86\" >\u0628\u0627 \u0645\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%AF%D9%85%D9%87\"><\/span>\n<p>  \u0645\u0642\u062f\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u062f\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u200c\u062a\u0631 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f. \u062f\u0631\u06a9 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u200b\u200b\u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0637\u062d \u0628\u0639\u062f\u06cc \u0645\u06cc\u200c\u0628\u0631\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u062b\u0628\u062a\u200c\u0646\u0627\u0645\u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0648 \u062d\u0627\u0641\u0638\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f:<\/p>\n<ol>\n<li>\u062a\u0639\u0637\u06cc\u0644\u06cc \u0686\u06cc\u0633\u062a\u061f<\/li>\n<li>\u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u0628\u0633\u062a\u0646 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/li>\n<li>\u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0686\u06cc\u0633\u062a\u061f<\/li>\n<li>\u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/li>\n<li>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc<\/li>\n<li>\u0646\u0648\u0634\u062a\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/li>\n<li>\u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0628\u0627 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/li>\n<\/ol>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u062f\u0631\u06a9 \u06a9\u0627\u0645\u0644\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u062f\u0631 \u06a9\u062f \u062e\u0648\u062f \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  <strong>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0686\u06cc\u0633\u062a\u061f<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c <strong>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646<\/strong> \u062a\u0648\u0627\u0628\u0639\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0648\u0627\u0698\u06af\u0627\u0646\u06cc \u0645\u062d\u0635\u0648\u0631 \u062e\u0648\u062f \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u062d\u062a\u06cc \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u062c\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a. \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u062d\u0627\u0644\u062a \u0628\u06cc\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u0627\u0633\u062a \u06a9\u0647 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc\u06cc \u0645\u0641\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646\u200c\u0647\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062d\u0641\u0638 \u0645\u062d\u062a\u0648\u0627\u06cc\u06cc \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0632 \u0633\u0647 \u062c\u0632\u0621 \u0627\u0635\u0644\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u06cc\u06a9 \u062a\u0627\u0628\u0639 \u062a\u0648 \u062f\u0631 \u062a\u0648<\/li>\n<li>\u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0622\u0632\u0627\u062f \u062f\u0631 \u062a\u0627\u0628\u0639 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f\u0647<\/li>\n<li>\u0627\u062c\u0631\u0627\u06cc \u062a\u0627\u0628\u0639 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062a\u0627\u0628\u0639 \u062a\u0648\u062f\u0631\u062a\u0648 \u0647\u0646\u0648\u0632 \u0648\u0636\u0639\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631 \u0622\u0632\u0627\u062f \u0631\u0627 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0645\u06cc \u0622\u0648\u0631\u062f.<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%B5%D9%84%DB%8C_%DB%8C%DA%A9_%D8%A8%D8%B3%D8%AA%D9%87\"><\/span>\n<p>  <strong>\u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u0628\u0633\u062a\u0647<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0633\u0627\u062f\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">outer_function<\/span><span class=\"p\">(<\/span><span class=\"n\">message<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">inner_function<\/span><span class=\"p\">():<\/span>\n        <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">message<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">inner_function<\/span>\n\n<span class=\"c1\"># Create a closure\n<\/span><span class=\"n\">closure<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">outer_function<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Hello, World!<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">closure<\/span><span class=\"p\">()<\/span>  <span class=\"c1\"># Output: Hello, World!\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c <code>inner_function<\/code> \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 <code>message<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0627\u0632 <code>outer_function<\/code>\u060c \u062d\u062a\u06cc \u0628\u0639\u062f \u0627\u0632 <code>outer_function<\/code> \u0627\u062c\u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u062a\u0627\u0628\u0639 \u062f\u0631\u0648\u0646\u06cc &#8220;\u0628\u0631 \u0631\u0648\u06cc&#8221; \u0645\u062a\u063a\u06cc\u0631 \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0628\u0633\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648 \u0627\u0635\u0637\u0644\u0627\u062d <strong>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646<\/strong>.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%D8%AF%D8%B1_%D8%AF%D8%A7%D8%AE%D9%84\"><\/span>\n<p>  <strong>\u0646\u062d\u0648\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062f\u0631 \u062f\u0627\u062e\u0644<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0628\u0627 \u06af\u0631\u0641\u062a\u0646 \u0648\u0636\u0639\u06cc\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0622\u0632\u0627\u062f \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0622\u0646\u0647\u0627 \u062f\u0631 \u0634\u06cc \u062a\u0627\u0628\u0639 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f <code>__closure__<\/code> \u0648\u06cc\u0698\u06af\u06cc<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0631\u0627 \u0627\u0632 \u0645\u062b\u0627\u0644 \u0642\u0628\u0644\u06cc \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">closure<\/span><span class=\"p\">.<\/span><span class=\"n\">__closure__<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"n\">cell_contents<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: Hello, World!\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 <code>__closure__<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0627\u0631\u062c\u0627\u0639 \u0628\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f. \u0647\u0631 \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u06cc\u06a9 &#8220;\u0633\u0644\u0648\u0644&#8221; \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f <code>cell_contents<\/code>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B2_%D9%85%D9%88%D8%A7%D8%B1%D8%AF_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A8%D8%B3%D8%AA%D9%87_%D8%B4%D8%AF%D9%86_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  <strong>\u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0633\u062a\u0646 \u0647\u0627 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a \u0628\u06cc\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u06cc\u0627 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u0633\u0631\u0627\u0633\u0631\u06cc \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0646\u062f \u0645\u0648\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0631\u0627\u06cc\u062c \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<h4><span class=\"ez-toc-section\" id=\"1_%DA%A9%D8%A7%D8%B1%D8%AE%D8%A7%D9%86%D8%AC%D8%A7%D8%AA_%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF%DB%8C\"><\/span>\n<p>  1. <strong>\u06a9\u0627\u0631\u062e\u0627\u0646\u062c\u0627\u062a \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u067e\u0648\u06cc\u0627 \u062a\u0648\u0627\u0628\u0639 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">multiplier<\/span><span class=\"p\">(<\/span><span class=\"n\">factor<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">multiply_by_factor<\/span><span class=\"p\">(<\/span><span class=\"n\">number<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">number<\/span> <span class=\"o\">*<\/span> <span class=\"n\">factor<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">multiply_by_factor<\/span>\n\n<span class=\"n\">times_two<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">multiplier<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">times_three<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">multiplier<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span>\n\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">times_two<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">))<\/span>  <span class=\"c1\"># Output: 10\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">times_three<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">))<\/span>  <span class=\"c1\"># Output: 15\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c <code>multiplier<\/code> \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f \u06a9\u0647 \u06cc\u06a9 \u0639\u062f\u062f \u0645\u0639\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0639\u0627\u0645\u0644 \u062e\u0627\u0635 \u0636\u0631\u0628 \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0639\u0637\u06cc\u0644\u06cc \u0647\u0627 <code>times_two<\/code> \u0648 <code>times_three<\/code> \u0627\u0631\u0632\u0634 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u062f <code>factor<\/code> \u0627\u0632 \u0645\u062d\u062f\u0648\u062f\u0647 \u0645\u062d\u0635\u0648\u0631 \u0622\u0646\u0647\u0627.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"2_%DA%A9%D9%BE%D8%B3%D9%88%D9%84%D8%A7%D8%B3%DB%8C%D9%88%D9%86\"><\/span>\n<p>  2. <strong>\u06a9\u067e\u0633\u0648\u0644\u0627\u0633\u06cc\u0648\u0646<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u0641\u0634\u0627\u06cc \u0648\u0636\u0639\u06cc\u062a \u062f\u0627\u062e\u0644\u06cc \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0645\u0641\u0647\u0648\u0645 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062e\u0635\u0648\u0635\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0627\u0633\u062a.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">counter<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">increment<\/span><span class=\"p\">():<\/span>\n        <span class=\"k\">nonlocal<\/span> <span class=\"n\">count<\/span>\n        <span class=\"n\">count<\/span> <span class=\"o\">+=<\/span> <span class=\"mi\">1<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">count<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">increment<\/span>\n\n<span class=\"n\">counter_fn<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">counter<\/span><span class=\"p\">()<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">counter_fn<\/span><span class=\"p\">())<\/span>  <span class=\"c1\"># Output: 1\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">counter_fn<\/span><span class=\"p\">())<\/span>  <span class=\"c1\"># Output: 2\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c <code>count<\/code> \u0645\u062a\u063a\u06cc\u0631 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0633\u062a\u0647 \u0645\u062d\u0635\u0648\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0648 \u062a\u0646\u0647\u0627 <code>increment<\/code> \u062a\u0627\u0628\u0639 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0645\u0642\u062f\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  <strong>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0686\u06cc\u0633\u062a\u061f<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u0644\u0641 <strong>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631<\/strong> \u062a\u0627\u0628\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0631\u0641\u062a\u0627\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u062f \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0627\u063a\u0644\u0628 \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0648 \u0631\u0648\u0634 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0648\u0627\u0628\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u0631\u0648\u0646\u062f <code>@<\/code> \u0646\u0645\u0627\u062f \u0628\u0627\u0644\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u062a\u0627\u0628\u0639<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%B5%D9%84%DB%8C_%DB%8C%DA%A9_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1\"><\/span>\n<p>  <strong>\u0645\u062b\u0627\u0644 \u0627\u0635\u0644\u06cc \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">decorator_function<\/span><span class=\"p\">(<\/span><span class=\"n\">original_function<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">wrapper_function<\/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\">Wrapper executed before <\/span><span class=\"si\">{<\/span><span class=\"n\">original_function<\/span><span class=\"p\">.<\/span><span class=\"n\">__name__<\/span><span class=\"si\">}<\/span><span class=\"s\">()<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">original_function<\/span><span class=\"p\">()<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">wrapper_function<\/span>\n\n<span class=\"nd\">@decorator_function<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">say_hello<\/span><span class=\"p\">():<\/span>\n    <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Hello!<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"nf\">say_hello<\/span><span class=\"p\">()<\/span>\n\n<span class=\"c1\"># Output:\n# Wrapper executed before say_hello()\n# Hello!\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646\u062c\u0627\u060c <code>decorator_function<\/code> \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f <code>say_hello<\/code>\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u0636\u0627\u0641\u06cc \u0642\u0628\u0644 \u0627\u0632 <code>say_hello()<\/code> \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%DA%A9%D8%A7%D8%B1_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7\"><\/span>\n<p>  <strong>\u0646\u062d\u0648\u0647 \u06a9\u0627\u0631 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0627\u0633\u0627\u0633\u0627\u064b \u0642\u0646\u062f \u0646\u062d\u0648\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0631\u0627\u06cc\u062c \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f: \u062a\u0648\u0627\u0628\u0639 \u0645\u0631\u062a\u0628\u0647 \u0628\u0627\u0644\u0627\u062a\u0631\u060c \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f. \u0648\u0642\u062a\u06cc \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc <code>@decorator<\/code>\u060c \u0645\u0639\u0627\u062f\u0644 \u0627\u0633\u062a \u0628\u0627:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">say_hello<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">decorator_function<\/span><span class=\"p\">(<\/span><span class=\"n\">say_hello<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u062a\u0627\u0628\u0639 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u062f\u06cc\u062f \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f (<code>wrapper_function<\/code>) \u06a9\u0647 \u0631\u0641\u062a\u0627\u0631 \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AF%D9%84%D8%A7%D9%84\"><\/span>\n<p>  <strong>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0627\u06af\u0631 \u062a\u0627\u0628\u0639\u06cc \u06a9\u0647 \u062a\u0632\u0626\u06cc\u0646 \u0645\u06cc\u200c\u0634\u0648\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u06af\u06cc\u0631\u062f\u060c \u062a\u0627\u0628\u0639 wrapper \u0628\u0627\u06cc\u062f \u0628\u067e\u0630\u06cc\u0631\u062f <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0642\u0627\u0644 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0647\u0627.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">decorator_function<\/span><span class=\"p\">(<\/span><span class=\"n\">original_function<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">wrapper_function<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/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\">Wrapper executed before <\/span><span class=\"si\">{<\/span><span class=\"n\">original_function<\/span><span class=\"p\">.<\/span><span class=\"n\">__name__<\/span><span class=\"si\">}<\/span><span class=\"s\">()<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"nf\">original_function<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">wrapper_function<\/span>\n\n<span class=\"nd\">@decorator_function<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">display_info<\/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=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">display_info ran with arguments (<\/span><span class=\"si\">{<\/span><span class=\"n\">name<\/span><span class=\"si\">}<\/span><span class=\"s\">, <\/span><span class=\"si\">{<\/span><span class=\"n\">age<\/span><span class=\"si\">}<\/span><span class=\"s\">)<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"nf\">display_info<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">John<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">25<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Output:\n# Wrapper executed before display_info()\n# display_info ran with arguments (John, 25)\n<\/span><\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C_%D8%AF%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86\"><\/span>\n<p>  <strong>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u0627\u06cc\u062a\u0648\u0646 \u0686\u0646\u062f\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u062f\u0627\u062e\u0644\u06cc \u0645\u0627\u0646\u0646\u062f <code>@staticmethod<\/code>\u060c <code>@classmethod<\/code>\u060c \u0648 <code>@property<\/code>.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"staticmethod_%D9%88_classmethod\"><\/span>\n<p>  <strong><code>@staticmethod<\/code>  \u0648 <code>@classmethod<\/code><\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0627\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u06a9\u0647 \u06cc\u0627 \u0628\u0647 \u0646\u0645\u0648\u0646\u0647 \u0645\u062d\u062f\u0648\u062f \u0646\u0645\u06cc \u0634\u0648\u0646\u062f (<code>@staticmethod<\/code>) \u06cc\u0627 \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u062e\u0648\u062f \u06a9\u0644\u0627\u0633 (<code>@classmethod<\/code>).\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">MyClass<\/span><span class=\"p\">:<\/span>\n    <span class=\"nd\">@staticmethod<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">static_method<\/span><span class=\"p\">():<\/span>\n        <span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Static method called<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"nd\">@classmethod<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">class_method<\/span><span class=\"p\">(<\/span><span class=\"n\">cls<\/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\">Class method called from <\/span><span class=\"si\">{<\/span><span class=\"n\">cls<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">MyClass<\/span><span class=\"p\">.<\/span><span class=\"nf\">static_method<\/span><span class=\"p\">()<\/span>   <span class=\"c1\"># Output: Static method called\n<\/span><span class=\"n\">MyClass<\/span><span class=\"p\">.<\/span><span class=\"nf\">class_method<\/span><span class=\"p\">()<\/span>    <span class=\"c1\"># Output: Class method called from &lt;class '__main__.MyClass'&gt;\n<\/span><\/code><\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"property\"><\/span>\n<p>  <strong><code>@property<\/code><\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0627\u06cc\u0646 <code>@property<\/code> decorator \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0631\u0648\u0634\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u0627\u0646\u0646\u062f \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0627\u0634\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">class<\/span> <span class=\"nc\">Circle<\/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\">radius<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_radius<\/span> <span class=\"o\">=<\/span> <span class=\"n\">radius<\/span>\n\n    <span class=\"nd\">@property<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">radius<\/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\">_radius<\/span>\n\n    <span class=\"nd\">@radius.setter<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">radius<\/span><span class=\"p\">(<\/span><span class=\"n\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">value<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">value<\/span> <span class=\"o\">&lt;=<\/span> <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\">Radius must be positive<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">_radius<\/span> <span class=\"o\">=<\/span> <span class=\"n\">value<\/span>\n\n<span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Circle<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">c<\/span><span class=\"p\">.<\/span><span class=\"n\">radius<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: 5\n<\/span>\n<span class=\"n\">c<\/span><span class=\"p\">.<\/span><span class=\"n\">radius<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">10<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">c<\/span><span class=\"p\">.<\/span><span class=\"n\">radius<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: 10\n<\/span><\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\"><\/span>\n<p>  <strong>\u0646\u0648\u0634\u062a\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u062a\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u06cc\u0627 \u0631\u0648\u0634 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0646\u0628\u0627\u0634\u062a\u0647 \u06a9\u0631\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0686\u0646\u062f\u06cc\u0646 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648\u0627\u062d\u062f \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D8%B2%D9%85%D8%A7%D9%86_%D8%A8%D9%86%D8%AF%DB%8C_%DB%8C%DA%A9_%D8%AA%D8%A7%D8%A8%D8%B9\"><\/span>\n<p>  <strong>\u0645\u062b\u0627\u0644: \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0633\u0641\u0627\u0631\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0631\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f:\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"n\">time<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">timer_decorator<\/span><span class=\"p\">(<\/span><span class=\"n\">func<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">wrapper<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">start_time<\/span> <span class=\"o\">=<\/span> <span class=\"n\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">time<\/span><span class=\"p\">()<\/span>\n        <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">func<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">end_time<\/span> <span class=\"o\">=<\/span> <span class=\"n\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">time<\/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=\"si\">{<\/span><span class=\"n\">func<\/span><span class=\"p\">.<\/span><span class=\"n\">__name__<\/span><span class=\"si\">}<\/span><span class=\"s\"> ran in <\/span><span class=\"si\">{<\/span><span class=\"n\">end_time<\/span> <span class=\"o\">-<\/span> <span class=\"n\">start_time<\/span><span class=\"si\">:<\/span><span class=\"p\">.<\/span><span class=\"mi\">4<\/span><span class=\"n\">f<\/span><span class=\"si\">}<\/span><span class=\"s\"> seconds<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">result<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">wrapper<\/span>\n\n<span class=\"nd\">@timer_decorator<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">calculate_square<\/span><span class=\"p\">(<\/span><span class=\"n\">numbers<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">n<\/span> <span class=\"o\">*<\/span> <span class=\"n\">n<\/span> <span class=\"k\">for<\/span> <span class=\"n\">n<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">numbers<\/span><span class=\"p\">]<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">result<\/span>\n\n<span class=\"n\">nums<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">range<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1000000<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">calculate_square<\/span><span class=\"p\">(<\/span><span class=\"n\">nums<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7_%D8%A8%D8%A7_%D8%A7%D8%B3%D8%AA%D8%AF%D9%84%D8%A7%D9%84-2\"><\/span>\n<p>  <strong>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0646\u06cc\u0632 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u0646\u062f. \u0627\u06cc\u0646 \u0632\u0645\u0627\u0646\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0647 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_Logger_%D8%A8%D8%A7_%D9%BE%DB%8C%D8%A7%D9%85_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\"><\/span>\n<p>  <strong>\u0645\u062b\u0627\u0644: Logger \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0633\u0641\u0627\u0631\u0634\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">logger_decorator<\/span><span class=\"p\">(<\/span><span class=\"n\">message<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">decorator<\/span><span class=\"p\">(<\/span><span class=\"n\">func<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">def<\/span> <span class=\"nf\">wrapper<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/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=\"si\">{<\/span><span class=\"n\">message<\/span><span class=\"si\">}<\/span><span class=\"s\">: Executing <\/span><span class=\"si\">{<\/span><span class=\"n\">func<\/span><span class=\"p\">.<\/span><span class=\"n\">__name__<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nf\">func<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">,<\/span> <span class=\"o\">**<\/span><span class=\"n\">kwargs<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">wrapper<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">decorator<\/span>\n\n<span class=\"nd\">@logger_decorator<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">DEBUG<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">greet<\/span><span class=\"p\">(<\/span><span class=\"n\">name<\/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\">Hello, <\/span><span class=\"si\">{<\/span><span class=\"n\">name<\/span><span class=\"si\">}<\/span><span class=\"s\">!<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"nf\">greet<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Alice<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Output:\n# DEBUG: Executing greet\n# Hello, Alice!\n<\/span><\/code><\/pre>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 <code>logger_decorator<\/code> \u06cc\u06a9 \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0645\u06cc \u067e\u06cc\u0686\u062f <code>greet<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0636\u0627\u0641\u06cc.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1_%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87\"><\/span>\n<p>  <strong>\u0645\u0641\u0627\u0647\u06cc\u0645 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"1_%DA%A9%D9%84%D8%A7%D8%B3_%D9%87%D8%A7%DB%8C_%D8%AA%D8%B2%D8%A6%DB%8C%D9%86\"><\/span>\n<p>  <strong>1. \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u062a\u0632\u0626\u06cc\u0646<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0628\u0644\u06a9\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0647\u0627 \u0646\u06cc\u0632 \u0628\u0647 \u06a9\u0627\u0631 \u0628\u0631\u062f. \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0644 \u06a9\u0644\u0627\u0633 \u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06cc\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u0646\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">add_str_repr<\/span><span class=\"p\">(<\/span><span class=\"n\">cls<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">cls<\/span><span class=\"p\">.<\/span><span class=\"n\">__str__<\/span> <span class=\"o\">=<\/span> <span class=\"k\">lambda<\/span> <span class=\"n\">self<\/span><span class=\"p\">:<\/span> <span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Instance of <\/span><span class=\"si\">{<\/span><span class=\"n\">cls<\/span><span class=\"p\">.<\/span><span class=\"n\">__name__<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">cls<\/span>\n\n<span class=\"nd\">@add_str_repr<\/span>\n<span class=\"k\">class<\/span> <span class=\"nc\">Dog<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">pass<\/span>\n\n<span class=\"n\">dog<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Dog<\/span><span class=\"p\">()<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">dog<\/span><span class=\"p\">)<\/span>  <span class=\"c1\"># Output: Instance of Dog\n<\/span><\/code><\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"2_%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D8%A8%D8%A7_%D8%AF%DA%A9%D9%88%D8%B1%D8%A7%D8%AA%D9%88%D8%B1%D9%87%D8%A7\"><\/span>\n<p>  <strong>2. \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0628\u0627 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062d\u0627\u0641\u0638\u0647\u200c\u06af\u0630\u0627\u0631\u06cc \u06cc\u06a9 \u062a\u06a9\u0646\u06cc\u06a9 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0646\u062a\u0627\u06cc\u062c \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u06af\u0631\u0627\u0646 \u0642\u06cc\u0645\u062a \u062f\u0631 \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0645\u0627\u0633\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0628\u0627 \u0647\u0645\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0634\u0648\u0646\u062f.\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">memoize<\/span><span class=\"p\">(<\/span><span class=\"n\">func<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">cache<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{}<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">wrapper<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">args<\/span> <span class=\"ow\">not<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">cache<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">cache<\/span><span class=\"p\">[<\/span><span class=\"n\">args<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">func<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">args<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">cache<\/span><span class=\"p\">[<\/span><span class=\"n\">args<\/span><span class=\"p\">]<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">wrapper<\/span>\n\n<span class=\"nd\">@memoize<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">fibonacci<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"p\">):<\/span>\n\n\n <span class=\"k\">if<\/span> <span class=\"n\">n<\/span> <span class=\"ow\">in<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">]:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">n<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nf\">fibonacci<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"p\">)<\/span> <span class=\"o\">+<\/span> <span class=\"nf\">fibonacci<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"nf\">fibonacci<\/span><span class=\"p\">(<\/span><span class=\"mi\">30<\/span><span class=\"p\">))<\/span>  <span class=\"c1\"># Output: 832040\n<\/span><\/code><\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  <strong>\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f\u0647\u0627\u06cc \u062a\u0645\u06cc\u0632\u062a\u0631 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0628\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062d\u0627\u0644\u062a \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0627\u062f\u0647\u200c\u0647\u0627 \u0631\u0627 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0631\u0641\u062a\u0627\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u0647\u0627 \u0648 \u0631\u0648\u0634\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0634\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f \u06cc\u0627 \u06af\u0633\u062a\u0631\u0634 \u062f\u0647\u06cc\u062f. \u0686\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627 \u062d\u0627\u0641\u0638\u0647\u200c\u06af\u0630\u0627\u0631\u06cc\u060c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u06cc\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06af\u0632\u0627\u0631\u0634\u200c\u06af\u06cc\u0631\u06cc \u0628\u0627\u0634\u06cc\u062f\u060c \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0636\u0631\u0648\u0631\u06cc \u062f\u0631 \u062c\u0639\u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u0627 \u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u200b\u200b\u0642\u0627\u062f\u0631 \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f \u06a9\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0635\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0648\u0638\u0627\u06cc\u0641 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0627 \u0628\u0633\u062a\u0647 \u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u0648 \u06a9\u0634\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u0632\u06cc\u0628\u0627\u062a\u0631 \u0648 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631 \u06a9\u0646\u0646\u062f!<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A8%D8%A7_%D9%85%D9%86_%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7_%D8%A8%D8%B1%D9%82%D8%B1%D8%A7%D8%B1_%DA%A9%D9%86\"><\/span>\n<p>  <strong>\u0628\u0627 \u0645\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>GitHub<\/li>\n<li>\u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0645\u0642\u062f\u0645\u0647 \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0648 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u06cc \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u06a9\u062f\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u200c\u062a\u0631 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f. \u062f\u0631\u06a9 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645\u060c \u200b\u200b\u0645\u0647\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0637\u062d \u0628\u0639\u062f\u06cc \u0645\u06cc\u200c\u0628\u0631\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631\u06cc \u0645\u0627\u0646\u0646\u062f \u062b\u0628\u062a\u200c\u0646\u0627\u0645\u060c \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc \u0648 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"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-76897","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/76897","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=76897"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/76897\/revisions"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=76897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=76897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=76897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}