{"id":31743,"date":"2024-11-01T09:02:22","date_gmt":"2024-11-01T09:02:22","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=31743"},"modified":"2024-11-01T11:48:27","modified_gmt":"2024-11-01T11:48:27","slug":"python-closures-and-decoratorsclosures-are-a-way-to-remember-the-environment-in-which-a-function-was-created-they-allow-you-to-retain-access-to-variables-from-an-outer-function-even-after-that-fun","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/31743\/","title":{"rendered":"Python Closures and Decorators\n\n\nClosures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code.\nIn Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions."},"content":{"rendered":"\n<p>In Python programming, closures and decorators are advanced topics that can confuse many beginners and intermediate developers. In this course, we will thoroughly explain the concepts of closures and decorators and how they can be utilized in Python code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is a Closure?<\/h2>\n\n\n\n<p>A closure is a concept that is created when using nested functions (inner functions). The inner function can reference the local variables of the outer function and has the characteristic of remembering these variables even after the outer function has finished executing. This allows the inner function to &#8216;capture&#8217; the context of the outer function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Structure of Closures<\/h3>\n\n\n\n<p>To understand the structure of a closure, let\u2019s look at a simple example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def outer_function(message):\n    def inner_function():\n        print(message)\n    return inner_function\n\nclosure = outer_function(\"Hello, Closure!\")\nclosure()<\/code><\/pre>\n\n\n\n<p>In the above code, <code>outer_function<\/code> returns <code>inner_function<\/code>. <code>closure<\/code> references the inner function <code>inner_function<\/code> and is able to access the local variable <code>message<\/code> of the <code>outer_function<\/code>. At this time, the <code>message<\/code> variable can still be accessed in the <code>inner_function<\/code> even after the outer function has concluded.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Application of Closures: State Retention<\/h3>\n\n\n\n<p>Closures provide flexibility in function usage by allowing a function to create instances and are useful when you want to retain state.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def counter():\n    count = 0\n    \n    def increment():\n        nonlocal count\n        count += 1\n        return count\n    \n    return increment\n\ncounter_instance = counter()\nprint(counter_instance())  # Output: 1\nprint(counter_instance())  # Output: 2<\/code><\/pre>\n\n\n\n<p>In this example, the <code>increment<\/code> function retains the state of the <code>count<\/code> variable. The <code>nonlocal<\/code> keyword enables the inner function to reassign the variable of the outer function.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is a Decorator?<\/h2>\n\n\n\n<p>A decorator is a powerful tool that adds additional functionality to existing functions. A decorator is another function that takes a function as an argument, allowing you to dynamically change or extend that function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Structure of Decorators<\/h3>\n\n\n\n<p>Decorators work by taking a function as an argument and returning a new function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def simple_decorator(func):\n    def wrapper():\n        print(\"Before doing something\")\n        func()\n        print(\"After doing something\")\n    return wrapper\n\ndef basic_function():\n    print(\"I am a basic function.\")\n\ndecorated_function = simple_decorator(basic_function)\ndecorated_function()<\/code><\/pre>\n\n\n\n<p>This code wraps <code>basic_function<\/code> to add pre-processing and post-processing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Python&#8217;s Decorator Syntax @<\/h3>\n\n\n\n<p>Python provides a simple syntax for directly applying decorators to functions. You can wrap functions with a decorator using the <code>@<\/code> symbol:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@simple_decorator\ndef another_function():\n    print(\"I am another function.\")\n\nanother_function()<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Real Example of a Decorator: Measuring Function Execution Time<\/h3>\n\n\n\n<p>Here is a practical example of a decorator that measures the execution time of a function:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import time\n\ndef timing_decorator(func):\n    def wrapper(*args, **kwargs):\n        start_time = time.time()\n        result = func(*args, **kwargs)\n        end_time = time.time()\n        print(f\"Execution time of {func.__name__} function: {end_time - start_time:.4f} seconds\")\n        return result\n    return wrapper\n\n@timing_decorator\ndef slow_function():\n    time.sleep(1)\n\nslow_function()<\/code><\/pre>\n\n\n\n<p>In the above example, the <code>timing_decorator<\/code> measures and prints the execution time of the <code>slow_function<\/code>. This allows for the extension of function behavior without directly affecting the code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Combining Closures and Decorators<\/h2>\n\n\n\n<p>Closures and decorators are often used together to create robust and flexible program structures. Closures allow decorators to retain state or continuously access certain data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>In this course, we learned about closures and decorators in Python. Closures provide the ability for functions to capture and reference variables from the outer scope, while decorators offer a way to wrap and extend functions in code. A good understanding of these two topics will enable you to write more efficient and powerful Python code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Python programming, closures and decorators are advanced topics that can confuse many beginners and intermediate developers. In this course, we will thoroughly explain the concepts of closures and decorators and how they can be utilized in Python code. What is a Closure? A closure is a concept that is created when using nested functions &hellip; <a href=\"https:\/\/atmokpo.com\/w\/31743\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Python Closures and Decorators<\/p>\n<p>Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code.<br \/>\nIn Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[98],"tags":[95],"class_list":["post-31743","post","type-post","status-publish","format-standard","hentry","category--en","tag--en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/31743\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In Python programming, closures and decorators are advanced topics that can confuse many beginners and intermediate developers. In this course, we will thoroughly explain the concepts of closures and decorators and how they can be utilized in Python code. What is a Closure? A closure is a concept that is created when using nested functions &hellip; \ub354 \ubcf4\uae30 &quot;Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/31743\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:02:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:48:27+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.\",\"datePublished\":\"2024-11-01T09:02:22+00:00\",\"dateModified\":\"2024-11-01T11:48:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/\"},\"wordCount\":521,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"keywords\":[\"\ud30c\uc774\uc36c\uac15\uc88c\"],\"articleSection\":[\"Python Study\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/\",\"url\":\"https:\/\/atmokpo.com\/w\/31743\/\",\"name\":\"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:02:22+00:00\",\"dateModified\":\"2024-11-01T11:48:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/31743\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/31743\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/31743\/","og_locale":"ko_KR","og_type":"article","og_title":"Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In Python programming, closures and decorators are advanced topics that can confuse many beginners and intermediate developers. In this course, we will thoroughly explain the concepts of closures and decorators and how they can be utilized in Python code. What is a Closure? A closure is a concept that is created when using nested functions &hellip; \ub354 \ubcf4\uae30 \"Python Closures and Decorators  Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.\"","og_url":"https:\/\/atmokpo.com\/w\/31743\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:02:22+00:00","article_modified_time":"2024-11-01T11:48:27+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/31743\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/31743\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions.","datePublished":"2024-11-01T09:02:22+00:00","dateModified":"2024-11-01T11:48:27+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/31743\/"},"wordCount":521,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"keywords":["\ud30c\uc774\uc36c\uac15\uc88c"],"articleSection":["Python Study"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/31743\/","url":"https:\/\/atmokpo.com\/w\/31743\/","name":"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions. - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:02:22+00:00","dateModified":"2024-11-01T11:48:27+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/31743\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/31743\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/31743\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Python Closures and Decorators Closures are a way to remember the environment in which a function was created. They allow you to retain access to variables from an outer function even after that function has finished executing. Decorators, on the other hand, are a way to modify or enhance functions or methods without changing their actual code. In Python, closures are created when a nested function references variables from its enclosing function. Decorators are typically defined as functions that return another function, allowing you to add functionality to existing functions."}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=31743"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31743\/revisions"}],"predecessor-version":[{"id":31744,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31743\/revisions\/31744"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=31743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=31743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=31743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}