{"id":663,"date":"2023-03-23T14:54:51","date_gmt":"2023-03-23T14:54:51","guid":{"rendered":"https:\/\/tinyytopic.com\/?p=663"},"modified":"2023-03-23T14:53:59","modified_gmt":"2023-03-23T14:53:59","slug":"what-is-the-difference-between-staticmethod-and-classmethod-in-python","status":"publish","type":"post","link":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/","title":{"rendered":"What is the difference between @staticmethod and @classmethod in Python?"},"content":{"rendered":"\n<p style=\"font-size:15px\"><br>In Python, the <code>@staticmethod<\/code> and <code>@classmethod<\/code> decorators are used to defining methods within a class. The difference between these two decorators lies in the way they handle the arguments passed to them.<\/p>\n\n\n\n<p style=\"font-size:15px\"><br>A <code>@staticmethod<\/code> is a method that belongs to the class and does not require an instance of the class to be called. This means that it cannot access the instance variables of the class, nor can it modify them. It is used when you want to create a method that is related to the class but does not depend on the instance state. Here is an example of a <code>@staticmethod<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class MyClass:\r\n    @staticmethod\r\n    def my_static_method(x, y):\r\n        return x + y\r<\/code><\/pre>\n\n\n\n<p style=\"font-size:15px\"><br>You can call this method on the class itself, without creating an instance of the class:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>result = MyClass.my_static_method(3, 4)\r<\/code><\/pre>\n\n\n\n<p style=\"font-size:15px\"><br>A <code>@classmethod<\/code> is a method that takes the class itself as its first argument, rather than an instance of the class. It is commonly used to create alternative constructors for a class. Here is an example of a <code>@classmethod<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class MyClass:\r\n    def __init__(self, x, y):\r\n        self.x = x\r\n        self.y = y\r\n    \r\n    @classmethod\r\n    def from_string(cls, string):\r\n        x, y = map(int, string.split(','))\r\n        return cls(x, y)\r<\/code><\/pre>\n\n\n\n<p style=\"font-size:15px\">In this example, the <code>from_string<\/code> method takes a string as input and returns an instance of the class. It uses the <code>cls<\/code> parameter to create the instance. You can call this method on the class itself, without creating an instance of the class:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>obj = MyClass.from_string('1,2')\r<\/code><\/pre>\n\n\n\n<p style=\"font-size:15px\">In summary, the <code>@staticmethod<\/code> decorator creates a method that does not require an instance of the class to be called, while the <code>@classmethod<\/code> decorator creates a method that takes the class itself as its first argument and is commonly used to create alternative constructors.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Python, the @staticmethod and @classmethod decorators are used to defining methods within a class. The difference between these two decorators lies in the way they handle the arguments passed to them. A @staticmethod is a method that belongs to the class and does not require an instance of the class to be called. This [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_uag_custom_page_level_css":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[42,12],"tags":[14,13,16,80,15],"class_list":["post-663","post","type-post","status-publish","format-standard","hentry","category-general-qa","category-python","tag-programming-language","tag-python","tag-python-code","tag-python-qna","tag-python-sample-code"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com<\/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:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com\" \/>\n<meta property=\"og:description\" content=\"In Python, the @staticmethod and @classmethod decorators are used to defining methods within a class. The difference between these two decorators lies in the way they handle the arguments passed to them. A @staticmethod is a method that belongs to the class and does not require an instance of the class to be called. This [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"tinyytopic.com\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-23T14:54:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-23T14:53:59+00:00\" \/>\n<meta name=\"author\" content=\"tinyytopic.com\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"tinyytopic.com\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/\",\"url\":\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/\",\"name\":\"What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com\",\"isPartOf\":{\"@id\":\"https:\/\/tinyytopic.com\/#website\"},\"datePublished\":\"2023-03-23T14:54:51+00:00\",\"dateModified\":\"2023-03-23T14:53:59+00:00\",\"author\":{\"@id\":\"https:\/\/tinyytopic.com\/#\/schema\/person\/56c840cea8539fb221a03c5fa2ef32eb\"},\"breadcrumb\":{\"@id\":\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/tinyytopic.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the difference between @staticmethod and @classmethod in Python?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tinyytopic.com\/#website\",\"url\":\"https:\/\/tinyytopic.com\/\",\"name\":\"tinyytopic.com\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tinyytopic.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/tinyytopic.com\/#\/schema\/person\/56c840cea8539fb221a03c5fa2ef32eb\",\"name\":\"tinyytopic.com\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tinyytopic.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f153681c8ca1e6d7287d858de51f968bb687221c89cf96d763ead4393881029?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f153681c8ca1e6d7287d858de51f968bb687221c89cf96d763ead4393881029?s=96&d=mm&r=g\",\"caption\":\"tinyytopic.com\"},\"sameAs\":[\"http:\/\/tinyytopic.com\"],\"url\":\"https:\/\/tinyytopic.com\/index.php\/author\/mmkmuthukumar21gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com","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:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/","og_locale":"en_US","og_type":"article","og_title":"What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com","og_description":"In Python, the @staticmethod and @classmethod decorators are used to defining methods within a class. The difference between these two decorators lies in the way they handle the arguments passed to them. A @staticmethod is a method that belongs to the class and does not require an instance of the class to be called. This [&hellip;]","og_url":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/","og_site_name":"tinyytopic.com","article_published_time":"2023-03-23T14:54:51+00:00","article_modified_time":"2023-03-23T14:53:59+00:00","author":"tinyytopic.com","twitter_card":"summary_large_image","twitter_misc":{"Written by":"tinyytopic.com","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/","url":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/","name":"What is the difference between @staticmethod and @classmethod in Python? - tinyytopic.com","isPartOf":{"@id":"https:\/\/tinyytopic.com\/#website"},"datePublished":"2023-03-23T14:54:51+00:00","dateModified":"2023-03-23T14:53:59+00:00","author":{"@id":"https:\/\/tinyytopic.com\/#\/schema\/person\/56c840cea8539fb221a03c5fa2ef32eb"},"breadcrumb":{"@id":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tinyytopic.com\/index.php\/2023\/03\/23\/what-is-the-difference-between-staticmethod-and-classmethod-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tinyytopic.com\/"},{"@type":"ListItem","position":2,"name":"What is the difference between @staticmethod and @classmethod in Python?"}]},{"@type":"WebSite","@id":"https:\/\/tinyytopic.com\/#website","url":"https:\/\/tinyytopic.com\/","name":"tinyytopic.com","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tinyytopic.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/tinyytopic.com\/#\/schema\/person\/56c840cea8539fb221a03c5fa2ef32eb","name":"tinyytopic.com","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tinyytopic.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5f153681c8ca1e6d7287d858de51f968bb687221c89cf96d763ead4393881029?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f153681c8ca1e6d7287d858de51f968bb687221c89cf96d763ead4393881029?s=96&d=mm&r=g","caption":"tinyytopic.com"},"sameAs":["http:\/\/tinyytopic.com"],"url":"https:\/\/tinyytopic.com\/index.php\/author\/mmkmuthukumar21gmail-com\/"}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"tinyytopic.com","author_link":"https:\/\/tinyytopic.com\/index.php\/author\/mmkmuthukumar21gmail-com\/"},"uagb_comment_info":5,"uagb_excerpt":"In Python, the @staticmethod and @classmethod decorators are used to defining methods within a class. The difference between these two decorators lies in the way they handle the arguments passed to them. A @staticmethod is a method that belongs to the class and does not require an instance of the class to be called. This&hellip;","_links":{"self":[{"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/posts\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/comments?post=663"}],"version-history":[{"count":2,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/posts\/663\/revisions"}],"predecessor-version":[{"id":665,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/posts\/663\/revisions\/665"}],"wp:attachment":[{"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/media?parent=663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/categories?post=663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tinyytopic.com\/index.php\/wp-json\/wp\/v2\/tags?post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}