{"id":7034,"date":"2026-09-17T11:00:42","date_gmt":"2026-09-17T07:30:42","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=7034"},"modified":"2026-09-17T11:00:42","modified_gmt":"2026-09-17T07:30:42","slug":"%d9%86%d8%ad%d9%88%d9%87-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-args-%d9%88-kwargs-%d8%af%d8%b1-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%db%b3","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-args-%d9%88-kwargs-%d8%af%d8%b1-%d9%be%d8%a7%db%8c%d8%aa%d9%88%d9%86-%db%b3\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 *args \u0648 **kwargs \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0648\u0627\u0628\u0639\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u0646\u0627\u0645\u200c\u062f\u0627\u0631\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627\u0628\u0639 \u0686\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u067e\u0630\u06cc\u0631\u062f. \u0648\u0642\u062a\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0639\u062f\u0627\u062f \u0645\u062a\u063a\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0642\u0641\u0644 \u06a9\u0631\u062f\u0646 Signature \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f\u060c \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0648 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u062e\u0627\u0635 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f: <code>*args<\/code> \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0648 <code>**kwargs<\/code> \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0686\u0637\u0648\u0631 \u062a\u0648\u0627\u0628\u0639 \u0631\u0627 \u0628\u0627 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f\u061b \u0686\u0637\u0648\u0631 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0648 \u0641\u0642\u0637-Keyword \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f\u061b \u0648 \u0686\u0637\u0648\u0631 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 Decorator\u0647\u0627\u060c \u0648\u0631\u0627\u062b\u062a \u06a9\u0644\u0627\u0633 \u0648 \u06a9\u062f Type-Annotate\u200c\u0634\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u06a9\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>*args<\/code> \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Tuple\u06cc \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b <code>**kwargs<\/code> \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Dict\u06cc.<\/li>\n\n\n\n<li>\u062a\u0631\u062a\u06cc\u0628 \u0642\u0627\u0646\u0648\u0646\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 Signature \u062a\u0627\u0628\u0639 \u0627\u06cc\u0646 \u0627\u0633\u062a: \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc Positional \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u0628\u0639\u062f <code>*args<\/code>\u060c \u0628\u0639\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0641\u0642\u0637-Keyword\u060c \u0628\u0639\u062f <code>**kwargs<\/code>. \u0645\u0639\u06a9\u0648\u0633 \u06cc\u0627 \u0645\u062e\u0644\u0648\u0637 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0628\u0627\u0639\u062b SyntaxError \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n\n\n\n<li>\u0633\u062a\u0627\u0631\u0647 \u0645\u0646\u0641\u0631\u062f (<code>*<\/code>) \u0648 \u0633\u062a\u0627\u0631\u0647 \u062f\u0648\u062a\u0627\u06cc\u06cc (<code>**<\/code>) \u0639\u0645\u0644\u06af\u0631\u0647\u0627\u06cc\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u0646\u062f\u061b \u0646\u0627\u0645\u200c\u0647\u0627\u06cc args \u0648 kwargs \u0641\u0642\u0637 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0646\u062f.<\/li>\n\n\n\n<li>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 <code>*<\/code> \u0648 <code>**<\/code> \u062f\u0631 \u0645\u062d\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc Unpack \u06a9\u0631\u062f\u0646 Sequence \u06cc\u0627 Mapping \u0628\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0648 Keyword \u0647\u0646\u06af\u0627\u0645 \u0635\u062f\u0627 \u0632\u062f\u0646 \u062a\u0627\u0628\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n\n\n\n<li>\u062d\u0627\u0634\u06cc\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc\u200c\u0647\u0627\u06cc \u0646\u0648\u0639 (Type Annotation) \u0628\u0631\u0627\u06cc <code>*args<\/code> \u0648 <code>**kwargs<\/code> (\u0645\u062b\u0644\u0627\u064b <code>*args: int<\/code>\u060c <code>**kwargs: str<\/code>) \u0628\u0647 \u0647\u0631 \u0639\u0646\u0635\u0631 \u06cc\u0627 \u0645\u0642\u062f\u0627\u0631 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061b \u0646\u0647 \u0628\u0647 \u06a9\u0644 Tuple \u06cc\u0627 Dict.<\/li>\n\n\n\n<li>\u0648\u0642\u062a\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u062b\u0627\u0628\u062a \u0648 \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u062f\u0647\u06cc\u062f\u061b \u0627\u0632 <code>*args<\/code>\/<code>**kwargs<\/code> \u0628\u0631\u0627\u06cc API\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u060c Decorator\u0647\u0627 \u0648 Forwarding \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u061b \u0648 \u0627\u0632 \u0633\u0631\u0628\u0627\u0631 \u06a9\u0648\u0686\u06a9\u0650 \u0633\u0627\u062e\u062a Tuple \u0648 Dict \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062f\u0627\u063a (Hot Path) \u0622\u06af\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0627\u06cc\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3 \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u0648 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc\u200c\u0627\u06cc \u0631\u0648\u06cc \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u06cc\u0627 \u0633\u0631\u0648\u0631\u062a\u0627\u0646 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc\u200c\u0634\u062f\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0627\u06af\u0631 \u06cc\u06a9\u06cc \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0628\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u0647\u0627\u06cc \u0646\u0635\u0628 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0645\u062d\u0644\u06cc \u06cc\u0627 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u062a\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644\u200c\u062a\u0627\u0646 (\u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c CentOS\u060c \u062f\u0628\u06cc\u0627\u0646 \u0648 \u063a\u06cc\u0631\u0647) \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u0646\u06a9\u062a\u0647:<\/strong> \u0628\u0631\u0627\u06cc \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u06a9\u062f\u0647\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0634\u0644 \u062a\u0639\u0627\u0645\u0644\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062d\u0644\u06cc\u200c\u062a\u0627\u0646 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 <code>python3<\/code> \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062b\u0627\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0639\u062f \u0627\u0632 \u067e\u0631\u0627\u0645\u067e\u062a <code>&gt;&gt;&gt;<\/code> \u06a9\u067e\u06cc\u060c \u067e\u06cc\u0633\u062a \u06cc\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u062f\u0631\u06a9 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u062a\u0627\u0628\u0639 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0648\u0627\u0628\u0639 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional (\u062a\u0637\u0628\u06cc\u0642\u200c\u06cc\u0627\u0641\u062a\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0648\u0642\u0639\u06cc\u062a) \u0648 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword (\u062a\u0637\u0628\u06cc\u0642\u200c\u06cc\u0627\u0641\u062a\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0627\u0645) \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u0646\u062f. \u0641\u0647\u0631\u0633\u062a\u200c\u0647\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u0650 \u0637\u0648\u0644-\u0645\u062a\u063a\u06cc\u0631 \u062a\u0648\u0633\u0637 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061b \u06a9\u0647 \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Positional \u06cc\u0627 Keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0645\u0646\u0641\u0631\u062f\u06cc \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u062a\u0627\u0628\u0639\u06cc \u0645\u06cc\u200c\u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u0647 \u062f\u0648 \u0639\u062f\u062f \u0631\u0627 \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0639\u062f \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0633\u0647 \u062a\u0627 \u0631\u0627 \u062c\u0645\u0639 \u06a9\u0646\u062f. \u0628\u0639\u062f \u0686\u0647\u0627\u0631 \u062a\u0627. \u0628\u0627 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062b\u0627\u0628\u062a\u060c \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631 Call Site\u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u0645\u06cc\u200c\u0634\u06a9\u0646\u062f. <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0627 \u0627\u062c\u0627\u0632\u0647 \u0631\u0634\u062f Signature \u062a\u0627\u0628\u0639 \u0628\u062f\u0648\u0646 \u0634\u06a9\u0633\u062a\u0646 \u0647\u06cc\u0686\u200c\u0686\u06cc\u0632 \u062d\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062a\u063a\u06cc\u0631<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0646\u0627\u0645\u200c\u0647\u0627 \u0648 \u062a\u0639\u062f\u0627\u062f \u062b\u0627\u0628\u062a\u06cc \u062f\u0627\u0631\u0646\u062f. \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062a\u063a\u06cc\u0631 \u0628\u0647 \u062a\u0627\u0628\u0639 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0635\u0641\u0631 \u06cc\u0627 \u0686\u0646\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Positional \u0627\u0636\u0627\u0641\u06cc (<code>*args<\/code>) \u06cc\u0627 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Keyword \u0627\u0636\u0627\u0641\u06cc (<code>**kwargs<\/code>) \u0631\u0627 \u0628\u062f\u0648\u0646 \u0641\u0647\u0631\u0633\u062a \u06a9\u0631\u062f\u0646 \u062a\u06a9\u200c\u062a\u06a9\u0634\u0627\u0646 \u062f\u0631 Signature \u0628\u067e\u0630\u06cc\u0631\u062f. \u062c\u062f\u0648\u0644 \u0632\u06cc\u0631 \u062f\u0648 \u0641\u0631\u0645 \u0645\u062a\u063a\u06cc\u0631 \u0631\u0627 \u062e\u0644\u0627\u0635\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0648\u06cc\u0698\u06af\u06cc<\/th><th>*args<\/th><th>**kwargs<\/th><\/tr><\/thead><tbody><tr><td>\u0633\u06cc\u0646\u062a\u06a9\u0633<\/td><td><code>*args<\/code><\/td><td><code>**kwargs<\/code><\/td><\/tr><tr><td>\u0633\u0627\u062e\u062a\u0627\u0631 \u062f\u0627\u062f\u0647<\/td><td>Tuple<\/td><td>Dict<\/td><\/tr><tr><td>\u0646\u0648\u0639 \u0622\u0631\u06af\u0648\u0645\u0627\u0646<\/td><td>Positional<\/td><td>Keyword<\/td><\/tr><tr><td>\u0631\u0648\u0634 Iteration<\/td><td><code>for val in args<\/code><\/td><td>`for k, v in kwargs.items()&#8220;<\/td><\/tr><tr><td>Keyword \u062f\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a\u061f<\/td><td>\u062e\u06cc\u0631<\/td><td>\u0628\u0644\u0647<\/td><\/tr><tr><td>\u0647\u062f\u0641 Type Annotation<\/td><td>\u0647\u0631 \u0639\u0646\u0635\u0631<\/td><td>\u0647\u0631 \u0645\u0642\u062f\u0627\u0631<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u0642\u0648\u0627\u0646\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0627\u0628\u0639 \u0628\u0627\u06cc\u062f \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0633\u062e\u062a\u200c\u06af\u06cc\u0631\u0627\u0646\u0647\u200c\u0627\u06cc \u0638\u0627\u0647\u0631 \u0634\u0648\u0646\u062f. \u062c\u062f\u0648\u0644 \u0632\u06cc\u0631 \u062a\u0631\u062a\u06cc\u0628 \u0642\u0627\u0646\u0648\u0646\u06cc \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f\u061b \u0646\u0642\u0636 \u0622\u0646 SyntaxError raised \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0645\u0648\u0642\u0639\u06cc\u062a<\/th><th>\u0646\u0648\u0639<\/th><th>\u0645\u062b\u0627\u0644<\/th><\/tr><\/thead><tbody><tr><td>\u06f1<\/td><td>Positional \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f<\/td><td>arg_1\u060c arg_2<\/td><\/tr><tr><td>\u06f2<\/td><td>Positional \u0645\u062a\u063a\u06cc\u0631<\/td><td>*args<\/td><\/tr><tr><td>\u06f3<\/td><td>\u0641\u0642\u0637-Keyword<\/td><td>kw_1=&#8221;default&#8221;<\/td><\/tr><tr><td>\u06f4<\/td><td>Keyword \u0645\u062a\u063a\u06cc\u0631<\/td><td>**kwargs<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u0647\u0634\u062f\u0627\u0631:<\/strong> \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 <code>**kwargs<\/code> \u0642\u0628\u0644 \u0627\u0632 <code>*args<\/code> \u0641\u0648\u0631\u0627\u064b SyntaxError \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u067e\u0627\u06cc\u062a\u0648\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u062d\u062a\u06cc \u06cc\u06a9 \u062e\u0637 \u0631\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u062b\u0644\u0627\u064b\u060c <code>def f(**kwargs, *args)<\/code> \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SyntaxError: invalid syntax<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 \u062a\u0631\u062a\u06cc\u0628 \u0642\u0627\u0646\u0648\u0646\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0646\u06cc\u062f: Positional \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u0628\u0639\u062f <code>*args<\/code>\u060c \u0628\u0639\u062f \u0641\u0642\u0637-Keyword\u060c \u0628\u0639\u062f <code>**kwargs<\/code>.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0645\u0648\u0646\u0647 Signature \u0645\u0639\u062a\u0628\u0631\u06cc \u06a9\u0647 \u0647\u0631 \u0686\u0647\u0627\u0631 \u0631\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>full_example.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def full_example(name, age, *args, role=\"user\", **kwargs):\n    # name, age: \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc positional \u0627\u0644\u0632\u0627\u0645\u06cc\n    # *args: \u0645\u0642\u0627\u062f\u06cc\u0631 positional \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a tuple \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f\n    # role: \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0641\u0642\u0637-keyword \u0628\u0627 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\n    # **kwargs: \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a dict \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f\n    print(f\"name={name}, age={age}\")\n    print(f\"extra positional args: {args}\")\n    print(f\"role={role}\")\n    print(f\"extra kwargs: {kwargs}\")\n\nfull_example(\"Sam\", 30, \"extra1\", \"extra2\", role=\"admin\", team=\"infra\", region=\"us-east\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 full_example.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nname=Sam, age=30\nextra positional args: ('extra1', 'extra2')\nrole=admin\nextra kwargs: {'team': 'infra', 'region': 'us-east'}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 *args \u0628\u0631\u0627\u06cc \u067e\u0630\u06cc\u0631\u0634 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0645\u062a\u063a\u06cc\u0631<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>*args<\/code> \u0628\u0647 \u062a\u0627\u0628\u0639 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0647\u0631 \u062a\u0639\u062f\u0627\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Positional \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u062f. \u0622\u0646\u200c\u0647\u0627 \u062f\u0631 Tuple \u0645\u0646\u0641\u0631\u062f\u06cc \u062c\u0645\u0639 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u06cc\u0634 Iterate \u06cc\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633\u0634 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">*args \u062f\u0631\u0648\u0646\u200c\u0632\u0627\u062f \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0633\u0637\u062d \u0645\u0641\u0633\u0631\u060c \u0633\u062a\u0627\u0631\u0647 \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0628\u0627\u0642\u06cc\u200c\u0645\u0627\u0646\u062f\u0647 \u0631\u0627 \u062f\u0631 Tuple\u0627\u06cc \u0645\u06cc\u200c\u0628\u0633\u062a\u0647 \u0648 \u0628\u0647 \u0646\u0627\u0645 args \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>args_type_check.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def inspect_args(*args):\n    # \u0646\u0648\u0639 \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc args \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0646\u0634\u0627\u0646 \u0628\u062f\u0647\n    print(type(args))   # \u0647\u0645\u06cc\u0634\u0647 &lt;class 'tuple'&gt;\n    print(args)         # \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0647\u200c\u0635\u0648\u0631\u062a tuple\n    print(args&#91;0])      # \u0627\u06cc\u0646\u062f\u06a9\u0633 \u06a9\u0631\u062f\u0646 \u0645\u062b\u0644 \u0647\u0631 tuple\u0627\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\n\ninspect_args(10, 20, 30)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 args_type_check.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n&lt;class 'tuple'&gt;\n(10, 20, 30)\n10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0686\u0648\u0646 args \u06cc\u06a9 Tuple \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646\u062f\u06a9\u0633\u0634 \u06a9\u0646\u06cc\u062f\u060c \u0628\u0631\u0634\u0634 \u0628\u062f\u0647\u06cc\u062f (Slice)\u060c \u0628\u0647 <code>len()<\/code> \u067e\u0627\u0633\u0634 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0627 <code>*args<\/code> \u0628\u0647 \u062a\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc Forward\u0634 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u0646\u06a9\u062a\u0647:<\/strong> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0631\u0627 \u0647\u0631 \u0646\u0627\u0645 \u0645\u0639\u062a\u0628\u0631 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f. \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0628\u0631\u0627\u06cc \u062a\u0648\u0627\u0628\u0639 \u0647\u0645\u0647-\u0645\u0646\u0638\u0648\u0631\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641\u06cc \u0645\u062b\u0644 <code>*prices<\/code> \u06cc\u0627 <code>**options<\/code> \u0648\u0642\u062a\u06cc \u0645\u0642\u0627\u062f\u06cc\u0631 \u062c\u0645\u0639\u200c\u0634\u062f\u0647 \u0645\u0639\u0646\u0627\u06cc \u062f\u0627\u0645\u0646\u0647\u200c\u0627\u06cc \u0631\u0648\u0634\u0646\u06cc \u062f\u0627\u0631\u0646\u062f\u061b \u06a9\u0647 Signature \u062a\u0627\u0628\u0639 \u0631\u0627 \u062e\u0648\u062f-\u0645\u0633\u062a\u0646\u062f \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">*args \u062f\u0631 \u0639\u0645\u0644<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062a\u0627\u0628\u0639\u06cc \u06a9\u0647 \u0647\u0645\u0647 \u0627\u0639\u062f\u0627\u062f \u062f\u0627\u062f\u0647\u200c\u0634\u062f\u0647 \u0631\u0627 \u0636\u0631\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 <code>*args<\/code> \u0646\u0648\u0634\u062a \u062a\u0627 \u0628\u0631\u0627\u06cc \u062f\u0648\u060c \u0633\u0647 \u06cc\u0627 \u0628\u06cc\u0634\u062a\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>lets_multiply.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def multiply(*args):\n    # args \u06cc\u06a9 tuple \u0627\u0632 \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc positional \u067e\u0627\u0633\u200c\u0634\u062f\u0647 \u0627\u0633\u062a\n    z = 1\n    for num in args:\n        z *= num\n    print(z)\n\nmultiply(4, 5)\nmultiply(10, 9)\nmultiply(2, 3, 4)\nmultiply(3, 5, 10, 6)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 lets_multiply.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n20\n90\n24\n900<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u062f\u0648\u0646 <code>*args<\/code>\u060c \u0627\u0641\u0632\u0648\u062f\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0633\u0648\u0645 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 Signature \u062a\u0627\u0628\u0639 \u0648 \u0647\u0631 Call Site \u0628\u0648\u062f. \u0628\u0627 <code>*args<\/code>\u060c \u062a\u0627\u0628\u0639 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0645\u06cc\u200c\u0645\u0627\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 **kwargs \u0628\u0631\u0627\u06cc \u067e\u0630\u06cc\u0631\u0634 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0645\u062a\u063a\u06cc\u0631<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>**kwargs<\/code> \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Dict \u0645\u0646\u0641\u0631\u062f\u06cc \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0628\u0627\u06cc\u062f \u0628\u0627 Keyword \u067e\u0627\u0633 \u0634\u0648\u062f (\u0645\u062b\u0644\u0627\u064b <code>name=\"Sam\"<\/code>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">**kwargs \u062f\u0631\u0648\u0646\u200c\u0632\u0627\u062f \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0633\u062a\u0627\u0631\u0647 \u062f\u0648\u062a\u0627\u06cc\u06cc \u062f\u0631 <code>**kwargs<\/code> \u0628\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Dict\u0627\u06cc \u0628\u0633\u062a\u0647 \u0648 \u0628\u0647 \u0646\u0627\u0645 kwargs \u0645\u062a\u0635\u0644 \u06a9\u0646\u062f. \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062f\u0631 \u0645\u062d\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u061b \u0645\u0642\u0627\u062f\u06cc\u0631\u060c \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u062a\u0646\u0627\u0638\u0631\u0646\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>kwargs_type_check.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def inspect_kwargs(**kwargs):\n    # \u0646\u0648\u0639 \u0648 \u0645\u062d\u062a\u0648\u0627\u06cc kwargs \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0646\u0634\u0627\u0646 \u0628\u062f\u0647\n    print(type(kwargs))          # \u0647\u0645\u06cc\u0634\u0647 &lt;class 'dict'&gt;\n    print(kwargs)                # \u06a9\u0644 dict\n    print(kwargs&#91;\"role\"])        # \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u06a9\u0644\u06cc\u062f \u0645\u062b\u0644 \u0647\u0631 dict\u0627\u06cc\n    print(kwargs.get(\"team\", \"unset\"))  # \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0645\u0646 \u0628\u0627 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\n\ninspect_kwargs(role=\"admin\", name=\"Sam\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 kwargs_type_check.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n&lt;class 'dict'&gt;\n{'role': 'admin', 'name': 'Sam'}\nadmin\nunset<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0686\u0648\u0646 kwargs \u06cc\u06a9 Dict \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 <code>.keys()<\/code>\u060c <code>.values()<\/code>\u060c <code>.items()<\/code>\u060c <code>.get()<\/code> \u06cc\u0627 \u0647\u0631 \u0645\u062a\u062f Dict \u062f\u06cc\u06af\u0631\u06cc \u0631\u0648\u06cc\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">**kwargs \u062f\u0631 \u0639\u0645\u0644<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0631\u0627\u0647 \u0633\u0627\u062f\u0647\u200c\u0627\u06cc \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u0631\u0633\u06cc\u0650 \u067e\u0627\u0633\u200c\u0634\u062f\u0647\u200c\u0647\u0627 \u0686\u0627\u067e \u06a9\u0631\u062f\u0646 kwargs \u0627\u0633\u062a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>print_kwargs.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def print_kwargs(**kwargs):\n    # kwargs \u06cc\u06a9 dict \u0627\u0632 \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc keyword \u067e\u0627\u0633\u200c\u0634\u062f\u0647 \u0627\u0633\u062a\n    print(kwargs)\n\nprint_kwargs(kwargs_1=\"Shark\", kwargs_2=4.5, kwargs_3=True)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 print_kwargs.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n{'kwargs_1': 'Shark', 'kwargs_2': 4.5, 'kwargs_3': True}<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u0646\u06a9\u062a\u0647:<\/strong> \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3.\u06f7 \u0648 \u0628\u0639\u062f\u062a\u0631\u060c <code>**kwargs<\/code> \u062a\u0631\u062a\u06cc\u0628 \u062f\u0631\u062c \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0686\u0648\u0646 Dict \u0628\u0647\u200c\u0637\u0648\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0631\u062a\u0628 \u0627\u0633\u062a. CPython 3.6 \u0647\u0645 \u062a\u0631\u062a\u06cc\u0628 \u062f\u0631\u062c \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062d\u0641\u0638 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0627\u0645\u0627 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3 \u062a\u0631\u062a\u06cc\u0628 Iteration \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0646\u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u062b\u0644 \u0647\u0631 Dict \u062f\u06cc\u06af\u0631\u06cc \u0631\u0648\u06cc \u062c\u0641\u062a\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f-\u0645\u0642\u062f\u0627\u0631 Iterate \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>print_values.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def print_values(**kwargs):\n    for key, value in kwargs.items():\n        # \u0631\u0648\u06cc \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 keyword iterate \u06a9\u0646 \u0648 \u0646\u0627\u0645 \u0648 \u0645\u0642\u062f\u0627\u0631\u0634 \u0631\u0627 \u0686\u0627\u067e \u06a9\u0646\n        print(f\"The value of {key} is {value}\")\n\nprint_values(my_name=\"Sammy\", your_name=\"Casey\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 print_values.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nThe value of my_name is Sammy\nThe value of your_name is Casey<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u200c\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 <code>.get()<\/code> \u0648 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0628\u0647 \u06a9\u0644\u06cc\u062f \u062e\u0627\u0635\u06cc \u0627\u0632 kwargs \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>kwargs_access.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def greet_user(**kwargs):\n    # \u0628\u0627 .get() \u0628\u0647 \u06a9\u0644\u06cc\u062f \u062e\u0627\u0635\u06cc \u0627\u0645\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u061b \u0627\u06af\u0631 \u0645\u0641\u0642\u0648\u062f \u0628\u0648\u062f \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0628\u062f\u0647\n    name = kwargs.get(\"name\", \"stranger\")\n    role = kwargs.get(\"role\", \"user\")\n    print(f\"Hello, {name}. Your role is {role}.\")\n\ngreet_user(name=\"Sam\", role=\"admin\")\ngreet_user(name=\"Alex\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 kwargs_access.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nHello, Sam. Your role is admin.\nHello, Alex. Your role is user.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>.get()<\/code> \u0628\u0627 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u060c \u0648\u0642\u062a\u06cc Caller \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Keyword \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0627\u0632 KeyError \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062a\u0631\u06a9\u06cc\u0628 *args \u0648 **kwargs \u062f\u0631 \u06cc\u06a9 \u062a\u0627\u0628\u0639<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0645\u0648\u0631\u062f \u0631\u0627\u06cc\u062c \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc\u060c \u0642\u0627\u0644\u0628\u200c\u0633\u0627\u0632 \u0644\u0627\u06af\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0633\u0637\u062d Severity \u0631\u0627 \u0627\u0644\u0632\u0627\u0645\u06cc \u0627\u0645\u0627 \u0647\u0631 \u062a\u0639\u062f\u0627\u062f \u0628\u062e\u0634 \u067e\u06cc\u0627\u0645 \u0648 \u0641\u06cc\u0644\u062f \u0645\u062a\u0627\u062f\u06cc\u062a\u0627\u06cc \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>log_message.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def log_message(severity, *args, **kwargs):\n    # severity: \u0627\u0644\u0632\u0627\u0645\u06cc\u061b \u0633\u0637\u062d \u0644\u0627\u06af \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\n    # args: \u0647\u0631 \u062a\u0639\u062f\u0627\u062f \u0628\u062e\u0634 \u067e\u06cc\u0627\u0645\u060c \u0628\u0647 \u06cc\u06a9 \u0631\u0634\u062a\u0647 join \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\n    # kwargs: \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0645\u062a\u0627\u062f\u06cc\u062a\u0627\u06cc \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f user\u060c request_id \u06cc\u0627 service\n    message = \" \".join(str(a) for a in args)\n    metadata = \", \".join(f\"{k}={v}\" for k, v in kwargs.items())\n    print(f\"&#91;{severity.upper()}] {message} | {metadata}\" if metadata else\n          f\"&#91;{severity.upper()}] {message}\")\n\nlog_message(\"info\", \"User logged in\")\nlog_message(\"error\", \"Payment failed\", \"retry 3 of 3\", user=\"sam\", request_id=\"abc123\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 log_message.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\n&#91;INFO] User logged in\n&#91;ERROR] Payment failed retry 3 of 3 | user=sam, request_id=abc123<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc log_message \u0641\u0642\u0637 \u0628\u0627 severity \u0648 \u0628\u062f\u0648\u0646 \u0645\u0648\u0627\u0631\u062f \u0627\u0636\u0627\u0641\u06cc \u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a\u061b args \u06cc\u06a9 Tuple \u062e\u0627\u0644\u06cc \u0648 kwargs \u06cc\u06a9 Dict \u062e\u0627\u0644\u06cc \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 *args \u0648 **kwargs \u0647\u0646\u06af\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062a\u0648\u0627\u0628\u0639<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0647\u0645\u0627\u0646 \u0646\u0645\u0627\u062f\u0647\u0627\u06cc <code>*<\/code> \u0648 <code>**<\/code> \u062f\u0631 \u0645\u062d\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc Unpack \u06a9\u0631\u062f\u0646 Sequence\u0647\u0627 \u0648 Mapping\u0647\u0627 \u0628\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0648 Keyword \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0639\u06a9\u0648\u0633\u0650 \u062c\u0645\u0639 \u06a9\u0631\u062f\u0646 \u0627\u0633\u062a: \u06cc\u06a9 Sequence \u06cc\u0627 Dict \u0631\u0627 \u0628\u0647 \u0686\u0646\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u067e\u062e\u0634 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unpack \u06a9\u0631\u062f\u0646 List \u0628\u0627 *<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u06cc\u0634\u200c\u06af\u0630\u0627\u0634\u062a\u0646 <code>*<\/code> \u0631\u0648\u06cc Iterable\u0627\u06cc\u060c \u0639\u0646\u0627\u0635\u0631\u0634 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional Unpack \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u0641\u06cc\u062f \u0648\u0642\u062a\u06cc List \u06cc\u0627 Tuple\u0627\u06cc \u062f\u0627\u0631\u06cc\u062f \u0648 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0647\u0631 \u0639\u0646\u0635\u0631 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062c\u062f\u0627\u06af\u0627\u0646\u0647\u200c\u0627\u06cc \u067e\u0627\u0633 \u0628\u062f\u0647\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>unpack_call.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def greet(first, last, city):\n    print(f\"Hello, {first} {last} from {city}.\")\n\n# \u0644\u06cc\u0633\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0648 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0627\u0648\u0644 unpack \u06a9\u0646\u060c \u0628\u0639\u062f dict \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0648\u0645\u06cc\nparts = &#91;\"Ada\", \"Lovelace\"]\nlocation = {\"city\": \"London\"}\ngreet(*parts, **location)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 unpack_call.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nHello, Ada Lovelace from London.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646\u062c\u0627 <code>*parts<\/code> \u0645\u0642\u062f\u0627\u0631 first \u0648 last \u0631\u0627 \u062a\u0623\u0645\u06cc\u0646 \u0648 <code>**location<\/code> \u0645\u0642\u062f\u0627\u0631 city \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Literal \u0631\u0627 \u0628\u0627 Unpacking \u0645\u062e\u0644\u0648\u0637 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>some_args.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def some_args(arg_1, arg_2, arg_3):\n    print(\"arg_1:\", arg_1)\n    print(\"arg_2:\", arg_2)\n    print(\"arg_3:\", arg_3)\n\nargs = (\"Sammy\", \"Casey\", \"Alex\")\nsome_args(*args)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 some_args.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\narg_1: Sammy\narg_2: Casey\narg_3: Alex<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Unpack \u06a9\u0631\u062f\u0646 Dictionary \u0628\u0627 **<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u06cc\u0634\u200c\u06af\u0630\u0627\u0634\u062a\u0646 <code>**<\/code> \u0631\u0648\u06cc Mapping\u0627\u06cc\u060c \u062c\u0641\u062a\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f-\u0645\u0642\u062f\u0627\u0631\u0634 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword Unpack \u0645\u06cc\u200c\u06a9\u0646\u062f. \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062a\u0627\u0628\u0639 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f (\u06cc\u0627 \u062a\u0648\u0633\u0637 <code>**kwargs<\/code> \u067e\u0630\u06cc\u0631\u0641\u062a\u0647 \u0634\u0648\u0646\u062f):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>some_kwargs.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def some_kwargs(kwarg_1, kwarg_2, kwarg_3):\n    print(\"kwarg_1:\", kwarg_1)\n    print(\"kwarg_2:\", kwarg_2)\n    print(\"kwarg_3:\", kwarg_3)\n\nkwargs = {\"kwarg_1\": \"Val\", \"kwarg_2\": \"Harper\", \"kwarg_3\": \"Remy\"}\nsome_kwargs(**kwargs)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 some_kwargs.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nkwarg_1: Val\nkwarg_2: Harper\nkwarg_3: Remy<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u062e\u0637\u0627\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c Unpacking<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0648 \u062e\u0637\u0627 \u0647\u0646\u06af\u0627\u0645 Unpacking \u0632\u06cc\u0627\u062f \u0638\u0627\u0647\u0631 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062e\u0637\u0627\u06cc \u06f1: \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>unpack_error_positional.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def add(a, b):\n    return a + b\n\nvalues = &#91;1, 2, 3]  # \u06cc\u06a9 \u0639\u0646\u0635\u0631 \u0627\u0636\u0627\u0641\u0647\nadd(*values)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 unpack_error_positional.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nTypeError: add() takes 2 positional arguments but 3 were given<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unpack \u06a9\u0631\u062f\u0646 Sequence\u0627\u06cc \u0628\u0627 \u0639\u0646\u0627\u0635\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062a\u0627\u0628\u0639\u060c TypeError \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0639\u0646\u0627\u0635\u0631\u062a\u0627\u0646 \u0631\u0627 \u0628\u0634\u0645\u0627\u0631\u06cc\u062f \u06cc\u0627 \u0627\u0632 Slice \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f: <code>add(*values[:2])<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u062e\u0637\u0627\u06cc \u06f2: \u06a9\u0644\u06cc\u062f Dict \u0628\u0627 \u0646\u0627\u0645 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u062f:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>unpack_error_keyword.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def greet(name, city):\n    print(f\"Hello, {name} from {city}.\")\n\ndata = {\"name\": \"Sam\", \"country\": \"India\"}  # 'country' \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0646\u06cc\u0633\u062a\ngreet(**data)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 unpack_error_keyword.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nTypeError: greet() got an unexpected keyword argument 'country'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unpack \u06a9\u0631\u062f\u0646 Dict\u0627\u06cc \u06a9\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc\u0634 \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062a\u0627\u0628\u0639 \u0645\u0637\u0627\u0628\u0642\u062a \u0646\u062f\u0627\u0631\u0646\u062f\u060c TypeError \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u06cc\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc Dict \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0647\u0645\u200c\u0631\u0627\u0633\u062a\u0627 \u06a9\u0646\u06cc\u062f\u061b \u06cc\u0627 \u062a\u0636\u0645\u06cc\u0646 \u06a9\u0646\u06cc\u062f \u062a\u0627\u0628\u0639 <code>**kwargs<\/code> \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0630\u0628 \u0645\u0648\u0627\u0631\u062f \u0627\u0636\u0627\u0641\u06cc \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0648\u0627\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0639\u0645\u0644\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Decorator\u0627\u06cc \u06a9\u0647 \u0628\u062f\u0648\u0646 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u062a\u0648\u0627\u0628\u0639 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u062f\u0642\u06cc\u0642 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0639\u0645\u0627\u0644\u0634 \u0631\u0648\u06cc \u0647\u0631 \u062a\u0627\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0645\u06cc\u200c\u0634\u06a9\u0646\u062f\u0634. \u0633\u0647 \u0627\u0644\u06af\u0648\u06cc \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0686\u0637\u0648\u0631 \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u062d\u0644 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0627\u0644\u06af\u0648\u06cc Decorator<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Decorator \u0627\u063a\u0644\u0628 \u062a\u0627\u0628\u0639\u06cc \u0631\u0627 \u0628\u062f\u0648\u0646 \u062f\u0627\u0646\u0633\u062a\u0646 Signature\u0627\u0634 Wrap \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u062f\u0631 Wrapper \u0628\u0647 \u0627\u0648 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u06cc \u0631\u0627 \u0628\u0647 \u062a\u0627\u0628\u0639 Wrapped-\u0634\u062f\u0647 Forward \u06a9\u0646\u062f. \u0645\u062b\u0627\u0644: \u0644\u0627\u06af\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0633\u0627\u062f\u0647:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>decorator_example.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import functools\n\ndef log_call(func):\n    @functools.wraps(func)\n    def wrapper(*args, **kwargs):\n        # \u0646\u0627\u0645 \u062a\u0627\u0628\u0639 \u0648 \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0644\u0627\u06af \u06a9\u0646\n        print(f\"Calling {func.__name__} with args={args}, kwargs={kwargs}\")\n        result = func(*args, **kwargs)\n        print(f\"{func.__name__} returned {result}\")\n        return result\n    return wrapper\n\n@log_call\ndef add(x, y):\n    return x + y\n\nadd(3, 7)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 decorator_example.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nCalling add with args=(3, 7), kwargs={}\nadd returned 10\n10<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wrapper \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Positional \u0648 Keyword\u0627\u06cc \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 func \u067e\u0627\u0633 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u062f. \u0647\u0645\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062f\u0631 Decorator\u0647\u0627\u06cc \u0632\u0645\u0627\u0646\u200c\u0633\u0646\u062c\u06cc\u060c Retry \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u0638\u0627\u0647\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u0648\u0631\u0627\u062b\u062a \u06a9\u0644\u0627\u0633 \u0628\u0627 super()<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc Subclass\u0627\u06cc <code>__init__<\/code> \u0631\u0627 Override \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627\u06cc\u062f Initializer \u0648\u0627\u0644\u062f \u0631\u0627 \u0635\u062f\u0627 \u0628\u0632\u0646\u062f\u060c \u0627\u063a\u0644\u0628 \u0647\u0645\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 Forward \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0627\u0632 \u062a\u06a9\u0631\u0627\u0631 \u0641\u0647\u0631\u0633\u062a \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0627\u0644\u062f \u0627\u062c\u062a\u0646\u0627\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>inheritance_example.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Animal:\n    def __init__(self, name, sound):\n        self.name = name\n        self.sound = sound\n\nclass Dog(Animal):\n    def __init__(self, *args, breed=\"unknown\", **kwargs):\n        # \u0647\u0645\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc positional \u0648 keyword \u0631\u0627 \u0628\u0647 \u06a9\u0644\u0627\u0633 \u0648\u0627\u0644\u062f forward \u06a9\u0646\n        super().__init__(*args, **kwargs)\n        self.breed = breed\n\n    def describe(self):\n        print(f\"{self.name} ({self.breed}) says {self.sound}\")\n\nd = Dog(\"Rex\", \"woof\", breed=\"Labrador\")\nd.describe()<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 inheritance_example.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nRex (Labrador) says woof<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646\u062c\u0627 Dog \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0641\u0642\u0637-Keyword \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 breed \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0648 \u0628\u0642\u06cc\u0647 \u0631\u0627 \u0628\u0647 <code>Animal.__init__<\/code> Forward \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062f\u0631 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627 \u0648 \u0633\u0644\u0633\u0644\u0647\u200c\u0645\u0631\u0627\u062a\u0628 \u06a9\u0644\u0627\u0633 \u0628\u0632\u0631\u06af \u0631\u0627\u06cc\u062c \u0627\u0633\u062a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0628\u0647 \u0633\u0628\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 Flask\u060c Decorator\u0627\u06cc Route \u0631\u0627 \u062b\u0628\u062a \u0648 \u062f\u0627\u062f\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0628\u0647 \u062a\u0627\u0628\u0639 View \u0634\u0645\u0627 \u067e\u0627\u0633 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0645\u0627\u0634\u06cc\u0646\u200c\u0622\u0644\u0627\u062a \u062f\u0627\u062e\u0644\u06cc \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0628\u0631\u0627\u06cc Forward \u06a9\u0631\u062f\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc URL\u060c \u0631\u0634\u062a\u0647\u200c\u0647\u0627\u06cc Query \u0648 \u0632\u0645\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u2014\u0628\u062f\u0648\u0646 \u062f\u0627\u0646\u0633\u062a\u0646 Signature \u062a\u0627\u0628\u0639 \u0634\u0645\u0627 \u0627\u0632 \u0642\u0628\u0644\u2014\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646\u062c\u0627 \u062a\u0635\u0648\u06cc\u0631\u0633\u0627\u0632\u06cc \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644\u06cc \u0627\u0632 \u0622\u0646 \u0627\u0644\u06af\u0648 \u0647\u0633\u062a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>flask_style.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def route(path):\n    \"\"\"\u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc Decorator \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u06cc \u06a9\u0647 Route \u06cc\u0648-\u0622\u0631-\u0627\u0644 \u062b\u0628\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.\"\"\"\n    def decorator(func):\n        # Wrapper \u0627\u0632 *args \u0648 **kwargs \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u06cc \u0631\u0627 \u06a9\u0647\n        # \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0647 \u062a\u0627\u0628\u0639 view forward \u06a9\u0646\u062f\n        def wrapper(*args, **kwargs):\n            print(f\"Routing {path!r} -&gt; {func.__name__}\")\n            return func(*args, **kwargs)\n        return wrapper\n    return decorator\n\n@route(\"\/users\/&lt;username&gt;\")\ndef user_profile(username):\n    return f\"Profile page for {username}\"\n\n# \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0635\u062f\u0627 \u0632\u062f\u0646 view \u0628\u0627 \u0628\u062e\u0634 \u062b\u0628\u062a\u200c\u0634\u062f\u0647 URL \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\nprint(user_profile(\"sam\"))<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 flask_style.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nRouting '\/users\/&lt;username&gt;' -&gt; user_profile\nProfile page for sam<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Route\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc Flask \u0628\u0647 \u0647\u0645\u06cc\u0646 \u0634\u06a9\u0644 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f: \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc URL \u0631\u0627 Unpack \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0628\u0647 \u062a\u0627\u0628\u0639 View \u0634\u0645\u0627 \u067e\u0627\u0633 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u06a9\u0647 \u062f\u0644\u06cc\u0644\u0634 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 View \u0641\u0642\u0637 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u0646\u062f \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u062d\u0627\u0634\u06cc\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0646\u0648\u0639 \u0628\u0627 *args \u0648 **kwargs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3.\u06f5 \u0628\u0647 \u0628\u0639\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0646\u0648\u0627\u0639 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062c\u0645\u0639\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0631\u0627 Annotate \u06a9\u0646\u06cc\u062f. \u062d\u0627\u0634\u06cc\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0647\u0631 \u0639\u0646\u0635\u0631 \u06cc\u0627 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0646\u0647 \u062e\u0648\u062f Tuple \u06cc\u0627 Dict \u0631\u0627:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>type_annotations_example.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def process(*args: int, **kwargs: str) -&gt; None:\n    # \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u062f \u0647\u0631 \u0639\u0646\u0635\u0631 \u062f\u0631 args \u06cc\u06a9 int \u0628\u0627\u0634\u062f\n    total = sum(args)\n    # \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u06cc\u200c\u0631\u0648\u062f \u0647\u0631 \u0645\u0642\u062f\u0627\u0631 \u062f\u0631 kwargs \u06cc\u06a9 str \u0628\u0627\u0634\u062f\n    labels = \", \".join(kwargs.values())\n    print(f\"Sum: {total}, Labels: {labels}\")\n\nprocess(1, 2, 3, unit=\"kg\", source=\"sensor\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 type_annotations_example.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nSum: 6, Labels: kg, sensor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u067e\u0633 <code>*args: int<\/code> \u06cc\u0639\u0646\u06cc \u00ab\u0647\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Positional \u0628\u0627\u06cc\u062f int \u0628\u0627\u0634\u062f\u00bb \u0648 <code>**kwargs: str<\/code> \u06cc\u0639\u0646\u06cc \u00ab\u0647\u0631 \u0645\u0642\u062f\u0627\u0631 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 Keyword \u0628\u0627\u06cc\u062f str \u0628\u0627\u0634\u062f\u00bb. Type Checker\u0647\u0627 \u0627\u0632 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u062d\u0644\u06cc\u0644 \u0627\u06cc\u0633\u062a\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u061b \u0645\u0641\u0633\u0631 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0644\u0632\u0627\u0645\u06cc \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u06af\u0631\u0641\u062a\u0646 \u0639\u062f\u0645 \u062a\u0637\u0627\u0628\u0642\u200c\u0647\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u06cc\u0633\u062a\u0627\u060c Type Checkery \u0645\u062b\u0644 mypy \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install mypy\nmypy type_annotations_example.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u0628\u0647\u200c\u062c\u0627\u06cc <code>process(1, 2)<\/code> \u0628\u0627 <code>process(\"a\", \"b\")<\/code> \u0635\u062f\u0627 \u0628\u0632\u0646\u06cc\u062f\u060c mypy \u062e\u0637\u0627\u06cc <code>Argument of type \"str\" is not assignable to parameter of type \"int\"<\/code> \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u06a9\u062f \u06af\u0632\u0627\u0631\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u0641\u0633\u0631 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u062f\u0648\u0646 \u0631\u062e\u062f\u0627\u062f Exception \u0627\u062c\u0631\u0627\u06cc\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0645\u0644\u0627\u062d\u0638\u0627\u062a \u06a9\u0627\u0631\u0627\u06cc\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0647\u0632\u06cc\u0646\u0647 \u0632\u0645\u0627\u0646-\u0627\u062c\u0631\u0627\u06cc \u06a9\u0648\u0686\u06a9\u06cc \u062f\u0627\u0631\u062f: \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 \u0647\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc Tuple \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0648 Dict \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 timeit \u0627\u0646\u062f\u0627\u0632\u0647\u200c\u0627\u0634 \u0628\u06af\u06cc\u0631\u06cc\u062f:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>perf_check.py<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import timeit\n\ndef explicit(a, b, c):\n    # \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062b\u0627\u0628\u062a: \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a tuple \u06cc\u0627 dict\n    return a + b + c\n\ndef with_args(*args):\n    # *args: \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 \u0647\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc tuple \u0645\u06cc\u200c\u0633\u0627\u0632\u062f\n    return sum(args)\n\nexplicit_time = timeit.timeit(lambda: explicit(1, 2, 3), number=1_000_000)\nargs_time = timeit.timeit(lambda: with_args(1, 2, 3), number=1_000_000)\n\nprint(f\"explicit:  {explicit_time:.3f}s\")\nprint(f\"with_args: {args_time:.3f}s\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 perf_check.py<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Output\nexplicit:  0.048s\nwith_args: 0.071s<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u062f\u0631 \u06cc\u06a9 \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc\u060c <code>*args<\/code> \u062d\u062f\u0648\u062f \u06f2\u06f0-\u06f5\u06f0\u066a \u0633\u0631\u0628\u0627\u0631 \u0646\u0633\u0628\u062a \u0628\u0647 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u062f\u0631 \u062a\u0627\u0628\u0639 \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644\u06cc \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u06a9\u062f\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u06cc\u0646 \u0646\u0627\u0645\u0631\u0628\u0648\u0637 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062d\u0644\u0642\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc\u0650 \u067e\u0631\u062f\u0627\u0632\u0634\u06af\u0631 \u0645\u06cc\u0644\u06cc\u0648\u0646\u200c\u0647\u0627 \u0622\u06cc\u062a\u0645\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\u0646\u06a9\u062a\u0647:<\/strong> perf_check.py \u0631\u0627 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u062f\u062a\u0627\u0646 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u062f\u0642\u06cc\u0642 \u0628\u0631\u0627\u06cc \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631 \u0648 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646\u200c\u062a\u0627\u0646 \u0628\u06af\u06cc\u0631\u06cc\u062f. \u062a\u0641\u0627\u0648\u062a \u0646\u0633\u0628\u06cc \u0627\u0632 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0637\u0644\u0642 \u0645\u0647\u0645\u200c\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc \u0627\u0646\u0639\u0637\u0627\u0641 \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u062f\u060c \u0686\u0646\u062f \u06af\u0632\u06cc\u0646\u0647 \u062f\u0627\u0631\u06cc\u062f. \u062c\u062f\u0648\u0644 \u0632\u06cc\u0631 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u0631\u0648\u06cc\u06a9\u0631\u062f<\/th><th>\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645<\/th><\/tr><\/thead><tbody><tr><td><code>*args<\/code> \/ <code>**kwargs<\/code><\/td><td>\u062a\u0639\u062f\u0627\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u062a\u063a\u06cc\u0631\u060c Decorator\u0647\u0627\u060c Forwarding \u0628\u0647 Callable \u062f\u06cc\u06af\u0631\u060c API\u0647\u0627\u06cc \u0628\u0647 \u0633\u0628\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9<\/td><\/tr><tr><td>\u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0645\u0633\u062a\u0642\u06cc\u0645 List \u06cc\u0627 Dict<\/td><td>\u0633\u0627\u062e\u062a\u0627\u0631 \u062b\u0627\u0628\u062a\u0650 \u0634\u0646\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u0631\u0627\u06cc Caller\u061b \u06cc\u06a9 \u0634\u06cc\u0621 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f (\u0645\u062b\u0644\u0627\u064b config: dict) \u0628\u0647\u200c\u062c\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword<\/td><\/tr><tr><td>Dataclass \u06cc\u0627 \u0634\u06cc\u0621 \u0645\u0646\u0641\u0631\u062f<\/td><td>\u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0641\u06cc\u0644\u062f\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627 \u0648 \u0627\u0646\u0648\u0627\u0639 \u0631\u0648\u0634\u0646\u061b \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc\u060c \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u200c\u0647\u0627 \u0648 \u0634\u06cc\u0621 \u00aboptions\u00bb \u0645\u0646\u0641\u0631\u062f \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f<\/td><\/tr><tr><td>TypedDict<\/td><td>\u0633\u0627\u062e\u062a\u0627\u0631 \u0634\u0628\u06cc\u0647-Keyword \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u0646\u0648\u0639\u061b \u062e\u0648\u0628 \u0648\u0642\u062a\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0634\u0646\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647 \u0648 Type Checking \u0627\u06cc\u0633\u062a\u0627 \u0628\u0631\u0627\u06cc Dict \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0648\u0642\u062a\u06cc API \u067e\u0627\u06cc\u062f\u0627\u0631 \u0648 \u062a\u0639\u062f\u0627\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. \u0648\u0642\u062a\u06cc API \u0628\u0627\u06cc\u062f \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u062f\u0644\u062e\u0648\u0627\u0647 \u0631\u0627 \u0628\u067e\u0630\u06cc\u0631\u062f \u06cc\u0627 Forward \u06a9\u0646\u062f\u060c \u0627\u0632 <code>*args<\/code>\/<code>**kwargs<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0633\u0648\u0627\u0644\u0627\u062a \u0645\u062a\u062f\u0627\u0648\u0644<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">**\u062a\u0641\u0627\u0648\u062a *args \u0648 <strong>kwargs \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0686\u06cc\u0633\u062a\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>*args<\/code> \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Tuple \u062c\u0645\u0639 \u0645\u06cc\u200c\u06a9\u0646\u062f. <code>**kwargs<\/code> \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0631 Dict. \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u0648\u0642\u0639\u06cc\u062a \u067e\u0627\u0633 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f (\u0645\u062b\u0644\u0627\u064b <code>f(1, 2)<\/code>)\u061b \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u0627\u0645 (\u0645\u062b\u0644\u0627\u064b <code>f(a=1, b=2)<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">**\u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u0646\u0627\u0645\u0634\u0627\u0646 \u0631\u0627 *args \u0648 <strong>kwargs \u0628\u06af\u0630\u0627\u0631\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0646\u0647. \u0646\u0627\u0645\u200c\u0647\u0627 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0646\u062f. \u0633\u062a\u0627\u0631\u0647 \u0645\u0646\u0641\u0631\u062f (<code>*<\/code>) \u0648 \u0633\u062a\u0627\u0631\u0647 \u062f\u0648\u062a\u0627\u06cc\u06cc (<code>**<\/code>) \u0627\u0644\u0632\u0627\u0645\u06cc\u200c\u0627\u0646\u062f\u061b \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 <code>*values<\/code> \u06cc\u0627 <code>**options<\/code> \u06cc\u0627 \u0647\u0631 \u0634\u0646\u0627\u0633\u0647 \u0645\u0639\u062a\u0628\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0627\u0628\u0639 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0686\u0647 \u062a\u0631\u062a\u06cc\u0628\u06cc \u0638\u0627\u0647\u0631 \u0634\u0648\u0646\u062f\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0648\u0644 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc Positional \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f\u060c \u0628\u0639\u062f <code>*args<\/code>\u060c \u0628\u0639\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0641\u0642\u0637-Keyword\u060c \u0628\u0639\u062f <code>**kwargs<\/code>. \u0646\u0642\u0636 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 SyntaxError \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">**\u0622\u06cc\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 *args \u0648 <strong>kwargs \u0631\u0627 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062a\u0627\u0628\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0644\u0647. <code>*args<\/code> \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 <code>**kwargs<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u062a\u0627\u0628\u0639 Tuple\u0627\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0648 Dict\u0627\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0686\u0637\u0648\u0631 List \u06cc\u0627 Dictionary \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062a\u0627\u0628\u0639 Unpack \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0627\u0632 <code>*<\/code> \u0628\u0631\u0627\u06cc Unpack \u06a9\u0631\u062f\u0646 Sequence \u0628\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f (\u0645\u062b\u0644\u0627\u064b <code>f(*my_list)<\/code>). \u0627\u0632 <code>**<\/code> \u0628\u0631\u0627\u06cc Unpack \u06a9\u0631\u062f\u0646 Mapping \u0628\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword (\u0645\u062b\u0644\u0627\u064b <code>f(**my_dict)<\/code>). \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u062f\u0648 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062a\u0631\u06a9\u06cc\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">**\u0622\u06cc\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 *args \u0648 <strong>kwargs \u0631\u0627 Type-Annotate \u06a9\u0646\u0645\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0644\u0647. \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06f3.\u06f5 \u0648 \u0628\u0639\u062f\u062a\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f <code>*args: int<\/code> \u0648 <code>**kwargs: str<\/code> \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f. \u062d\u0627\u0634\u06cc\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0628\u0647 \u0647\u0631 \u0639\u0646\u0635\u0631 \u06cc\u0627 \u0645\u0642\u062f\u0627\u0631 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0646\u0647 \u0628\u0647 Tuple \u06cc\u0627 Dict. Type Checker\u0647\u0627 \u0627\u0632 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u062d\u0644\u06cc\u0644 \u0627\u06cc\u0633\u062a\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">**\u0622\u06cc\u0627 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 *args \u0648 <strong>kwargs \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0628\u0644\u0647\u061b \u0627\u0645\u0627 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06a9\u0648\u0686\u06a9. \u0647\u0631 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc Tuple \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc <code>*args<\/code> \u0648 Dict \u062c\u062f\u06cc\u062f\u06cc \u0628\u0631\u0627\u06cc <code>**kwargs<\/code> \u0645\u06cc\u200c\u0633\u0627\u0632\u062f. \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062f\u0627\u063a \u06cc\u0627 \u062d\u062c\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062e\u06cc\u0644\u06cc \u0628\u0627\u0644\u0627\u060c \u0627\u06af\u0631 \u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u062b\u0627\u0628\u062a \u0627\u0633\u062a \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">***args \u0648 <strong>kwargs \u062f\u0631 \u0648\u0631\u0627\u062b\u062a \u06a9\u0644\u0627\u0633 \u0686\u06af\u0648\u0646\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Subclass\u0647\u0627 \u0627\u063a\u0644\u0628 \u062f\u0631 <code>__init__<\/code> (\u06cc\u0627 \u0645\u062a\u062f\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631) \u0627\u0632 <code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648 \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 <code>super().__init__(*args, **kwargs)<\/code> \u067e\u0627\u0633 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0627 \u0648\u0627\u0644\u062f \u0647\u0645\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f\u061b \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 Subclass \u0647\u0631 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0648\u0627\u0644\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u062f. Subclass \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u062e\u0648\u062f\u0634 \u0631\u0627 \u0642\u0628\u0644 \u06cc\u0627 \u0628\u0639\u062f \u0627\u0632 Forwarding \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u062f.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>*args<\/code> \u0648 <code>**kwargs<\/code> \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u062a\u0648\u0627\u0628\u0639\u06cc \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062a\u0639\u062f\u0627\u062f \u0645\u062a\u063a\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0648 Keyword \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u0646\u062f\u061b \u0648 \u0647\u0646\u06af\u0627\u0645 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u062a\u0648\u0627\u0628\u0639\u060c Sequence\u0647\u0627 \u0648 Mapping\u0647\u0627 \u0631\u0627 Unpack \u06a9\u0646\u06cc\u062f. \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 Signature\u0647\u0627\u06cc \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631\u060c Decorator\u0647\u0627 \u06cc\u0627 Forwarding (\u0645\u062b\u0644\u0627\u064b \u0628\u0647 <code>super()<\/code> \u06cc\u0627 API\u0647\u0627\u06cc \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9) \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u062f. \u062a\u0631\u062a\u06cc\u0628 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631\u0633\u062a \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f\u061b \u0648 \u0648\u0642\u062a\u06cc API \u062b\u0627\u0628\u062a \u0627\u0633\u062a \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0645\u0647\u0645\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0635\u0631\u06cc\u062d \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u062f\u0647\u06cc\u062f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u062a\u0639\u0631\u06cc\u0641 \u062a\u0648\u0627\u0628\u0639\u060c \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627 \u0645\u0648\u062c\u0648\u062f\u06cc\u062a\u200c\u0647\u0627\u06cc \u0646\u0627\u0645\u200c\u062f\u0627\u0631\u06cc \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u062a\u0627\u0628\u0639 \u0686\u0647 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u067e\u0630\u06cc\u0631\u062f. \u0648\u0642\u062a\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0639\u062f\u0627\u062f \u0645\u062a\u063a\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0642\u0641\u0644 \u06a9\u0631\u062f\u0646 Signature \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f\u060c \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0648 \u0633\u06cc\u0646\u062a\u06a9\u0633 \u062e\u0627\u0635 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f: *args \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Positional \u0627\u0636\u0627\u0641\u06cc \u0648 **kwargs \u0628\u0631\u0627\u06cc \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc Keyword \u0627\u0636\u0627\u0641\u06cc. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0686\u0637\u0648\u0631 \u062a\u0648\u0627\u0628\u0639 \u0631\u0627 &hellip;<\/p>\n","protected":false},"author":9,"featured_media":7036,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[343],"tags":[],"class_list":["post-7034","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=7034"}],"version-history":[{"count":1,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7034\/revisions"}],"predecessor-version":[{"id":7035,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/7034\/revisions\/7035"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/7036"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=7034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=7034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=7034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}