

{"id":9804,"date":"2018-03-03T04:49:05","date_gmt":"2018-03-02T23:19:05","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=9804"},"modified":"2026-04-23T15:42:41","modified_gmt":"2026-04-23T10:12:41","slug":"python-property-problem-solution","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/","title":{"rendered":"Python Property &#8211; The Problem and Solution"},"content":{"rendered":"<p>In this tutorial on Python Property, you will learn how to use setters and getters using property.<\/p>\n<p>Moreover, we will discuss the problems and solutions related to Python Property.\u00a0Before we begin, take a look at Classes and Objects.<\/p>\n<p>So, let&#8217;s start Python Property Tutorial.<\/p>\n<div id=\"attachment_9807\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-9807\" class=\"wp-image-9807 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01.jpg\" alt=\"Python property\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1024x536.jpg 1024w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-9807\" class=\"wp-caption-text\">Python Property<\/p><\/div>\n<h3>What is Python Property?<\/h3>\n<p>Let\u2019s first look at a Python class Song.<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; class Song:\r\n\tdef __init__(self,title):\r\n\t\tself.title=title\r\n\tdef show_title(self):\r\n\t\tprint(f\"I'm listening to {self.title}\")<\/pre>\n<p>We then create an object Teddy_Bear, and call show_title() on it.<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear=Song('Teddy Bear')\r\n&gt;&gt;&gt; Teddy_Bear.show_title()<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">I&#8217;m listening to Teddy Bear<\/div>\n<p>Here, we can get and set the title instance attribute this way:<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear.title #getting the title<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">&#8216;Teddy Bear&#8217;<\/div>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear.title='TEDDY BEAR' #setting the title\r\n&gt;&gt;&gt; Teddy_Bear.title<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">&#8216;TEDDY BEAR&#8217;<\/div>\n<p>Checking the object\u2019s dictionary, we find this:<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear.__dict__<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">{&#8216;title&#8217;: &#8216;TEDDY BEAR&#8217;}<\/div>\n<div><\/div>\n<div><strong>Benefits of using Property in Python:<\/strong><\/div>\n<ul>\n<li><strong>Validation:<\/strong> It lets you check before you save the data.<\/li>\n<li><strong>Easy upgrade:<\/strong> You can add logic to the variable already entered in the code without changing any other code that uses it.<\/li>\n<li><strong>Security:<\/strong> It makes sure that the variable is not changed or deleted when someone is watching it.<\/li>\n<li><strong>Saving space:<\/strong> You can calculate the value whenever required, rather than just occupying extra space.<\/li>\n<\/ul>\n<p><strong>The problem:<\/strong> What if clients begin accessing and modifying the variable \u2018title\u2019? That could cause all kinds of chaos.<\/p>\n<h3>Python Property &#8211; A Possible Solution<\/h3>\n<p>Let\u2019s do two things:<\/p>\n<ul>\n<li>Define setter and getter functions. To set and get a value, we define the following functions:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; def get_title(self):\r\n\treturn self._title\r\n&gt;&gt;&gt; def set_title(self,title):\r\n\t\tself._title=title.upper()<\/pre>\n<p>Here, get_title returns the title of the book, and set_title converts it to all caps (we saw this in<\/p>\n<p>Python Built-in Functions)<\/p>\n<ul>\n<li>Make the variable \u2018title\u2019 private. To do this, we use a leading underscore. After all these changes, our class looks like this:<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; class Song:\r\n\tdef __init__(self,title):\r\n\t\tself.title=title\r\n\tdef show_title(self):\r\n\t\tprint(f\"I'm listening to {self.title}\")\r\n\tdef get_title(self):\r\n\t\treturn self._title\r\n\tdef set_title(self,title):\r\n\t\tself._title=title.upper()<\/pre>\n<p>Well, the underscore doesn\u2019t really make the variable private, because Python does not implement any such restriction at its level.<\/p>\n<p>But these are the norms that we must follow.<\/p>\n<p>But the problem with this solution is that we will need to update \u2018Teddy_Bear.title\u2019 to \u2018Teddy_Bear.get_title()\u2019 and \u2018Teddy_Bear.title=\u2019TEDDY BEAR\u2019\u2019 to \u2018Teddy_Bear.set_title()\u2019 in each occurrence.<\/p>\n<p>In real-world code, clients may have thousands of lines where they implemented our class.<\/p>\n<p>In that case, it becomes tedious to refactor every single occurrence. This makes it not backward-compatible.<\/p>\n<p>So, let\u2019s look at a better option next. Actually, we will just add a line to this approach, and it will work like magic.<\/p>\n<h3>Python Property &#8211; The Solution<\/h3>\n<p>To solve this problem, Python lends us the function property(). This is what this property of Python looks like:<\/p>\n<p>property(fget, fset, fdel, doc)<\/p>\n<p>Here, fget takes a getter, fset takes a setter, fdel takes a function to delete an attribute, and doc is a string.<\/p>\n<p>These arguments, however, are optional. Here is a call to property() without any arguments:<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; property()<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">&lt;property object at 0x062CDDB0&gt;<\/div>\n<p>For fget, fset, and fdel, a property object has the following methods: getter(), setter(), and delete(). So, this is equivalent to this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&gt;&gt;&gt; title=property() #make empty property\r\n&gt;&gt;&gt; title=title.getter(get_title) #assign fget\r\n&gt;&gt;&gt; title=title.setter(set_title) #assign fset<\/pre>\n<p>For our class Song, we add the following line:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&gt;&gt;&gt; title=property(get_title,set_title)<\/pre>\n<p>This makes the class look like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&gt;&gt;&gt; class Song:\r\n  def __init__(self,title):\r\n    self.title=title\r\n  def show_title(self):\r\n    print(f\"I'm listening to {self.title}\")\r\n  def get_title(self):\r\n    return self._title\r\n  def set_title(self,title):\r\n    self._title=title.upper()\r\n  title=property(get_title,set_title)<\/pre>\n<p>Now, let\u2019s try accessing the title for the object Teddy_Bear.<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear=Song('Teddy Bear')\r\n&gt;&gt;&gt; Teddy_Bear.title<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">&#8216;TEDDY BEAR&#8217;<\/div>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear.show_title()<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">I&#8217;m listening to TEDDY BEAR<\/div>\n<p>This implementation is backward-compatible. This saves us from all the work of refactoring.<\/p>\n<p>Also note that it is _title that holds the actual value of the book\u2019s title. \u2018title\u2019 is just a property object that makes it happen.<\/p>\n<h3>Some Syntactic Sugar<\/h3>\n<p>We have seen the @-syntax in our lesson on Python Property Decorators. Here, we do this:<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; class Song:\r\n\tdef __init__(self,title):\r\n\t\tself.title=title\r\n\tdef show_title(self):\r\n\t\tprint(f\"I'm listening to {self.title}\")\r\n\t@property\r\n\tdef title(self):\r\n\t\treturn self._title\r\n\t@title.setter\r\n\tdef title(self,title):\r\n\t\tself._title=title.upper()<\/pre>\n<p>Firstly, note that we removed the call to the property. Next, we ditched the names \u2018get_title\u2019 and \u2018set_title\u2019, and used \u2018title\u2019 instead.<\/p>\n<p>Finally, we used @property before the getter, and @title.setter before the setter.<\/p>\n<p>Let\u2019s access this now.<\/p>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear=Song('Teddy Bear')\r\n&gt;&gt;&gt; Teddy_Bear.title<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">&#8216;TEDDY BEAR&#8217;<\/div>\n<pre class=\"EnlighterJSRAW\">&gt;&gt;&gt; Teddy_Bear.show_title()<\/pre>\n<p><strong>Output<\/strong><\/p>\n<div class=\"code-output\">I&#8217;m listening to TEDDY BEAR<\/div>\n<p>So, this was all about Python Property Tutorial. Hope you like our explanation.<\/p>\n<h3>Python Interview Questions on Property<\/h3>\n<ol>\n<li>What is property in Python?<\/li>\n<li>What is the use of property in Python?<\/li>\n<li>What is a Python class property?<\/li>\n<li>How does Python property work?<\/li>\n<li>What is the benefit of using property in Python?<\/li>\n<\/ol>\n<h3>Conclusion<\/h3>\n<p>In this tutorial on Python Property, we learned about different problems and solutions to these problems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial on Python Property, you will learn how to use setters and getters using property. Moreover, we will discuss the problems and solutions related to Python Property.\u00a0Before we begin, take a look&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":36435,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[10773,10774,10775,10776],"class_list":["post-9804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-python-property","tag-python-property-decorator","tag-python-property-problem","tag-python-property-solution"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Python Property - The Problem and Solution - DataFlair<\/title>\n<meta name=\"description\" content=\"Python Property Tutorial- What is Properyt in Python, problem and solution of Python Properties, Some Syntactic Sugar, Python Property with syntx &amp; example\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Property - The Problem and Solution - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Python Property Tutorial- What is Properyt in Python, problem and solution of Python Properties, Some Syntactic Sugar, Python Property with syntx &amp; example\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-02T23:19:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-23T10:12:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python Property - The Problem and Solution - DataFlair","description":"Python Property Tutorial- What is Properyt in Python, problem and solution of Python Properties, Some Syntactic Sugar, Python Property with syntx & example","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:\/\/data-flair.training\/blogs\/python-property-problem-solution\/","og_locale":"en_US","og_type":"article","og_title":"Python Property - The Problem and Solution - DataFlair","og_description":"Python Property Tutorial- What is Properyt in Python, problem and solution of Python Properties, Some Syntactic Sugar, Python Property with syntx & example","og_url":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-03-02T23:19:05+00:00","article_modified_time":"2026-04-23T10:12:41+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Python Property &#8211; The Problem and Solution","datePublished":"2018-03-02T23:19:05+00:00","dateModified":"2026-04-23T10:12:41+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/"},"wordCount":718,"commentCount":5,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg","keywords":["Python property","Python Property decorator","Python Property Problem","Python Property Solution"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/","url":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/","name":"Python Property - The Problem and Solution - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg","datePublished":"2018-03-02T23:19:05+00:00","dateModified":"2026-04-23T10:12:41+00:00","description":"Python Property Tutorial- What is Properyt in Python, problem and solution of Python Properties, Some Syntactic Sugar, Python Property with syntx & example","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/03\/Python-property-01-1.jpg","width":1200,"height":628,"caption":"Python Property"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/python-property-problem-solution\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/python\/"},{"@type":"ListItem","position":3,"name":"Python Property &#8211; The Problem and Solution"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/9804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=9804"}],"version-history":[{"count":11,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/9804\/revisions"}],"predecessor-version":[{"id":147815,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/9804\/revisions\/147815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/36435"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=9804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=9804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=9804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}