{"id":24965,"date":"2022-12-07T00:39:42","date_gmt":"2022-12-06T19:09:42","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/"},"modified":"2022-12-07T00:39:42","modified_gmt":"2022-12-06T19:09:42","slug":"solved-class-variable-cant-be-defined-by-function-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/","title":{"rendered":"[Solved] Class variable can&#8217;t be defined by function [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-23547169\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"23547169\" data-parentid=\"23547088\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>that&#8217;s because the <code>self<\/code> variable has to be explicitely given to methods in python. As you write it, are you expecting python to read your mind so it guesses that <code>self<\/code> shall be something from a class your function is not related at all with?<\/p>\n<p>So to have it bound you need:<\/p>\n<ol>\n<li>add <code>self<\/code> to argument list of <code>def pickapoo_specialattack(self, opponent)<\/code><\/li>\n<li>to move <code>pickapoo_specialattack(opponent)<\/code> in your <code>Deskemon<\/code> class<\/li>\n<\/ol>\n<p>looking further in your code, what you&#8217;re doing is definitely wrong, as you&#8217;re defeating the whole purpose of OOP! Use classes and subclasses to do what you&#8217;re aiming. <\/p>\n<p>Let me give you an incomplete example of what I mean:<\/p>\n<pre><code>class Deskemon(object):\n    def specialattack(self, opponent):\n        raise NotImplementedError\n\n    \u2026\n\nclass Pickapoo(Deskemon):\n    def specialattack(self, opponent):\n         \u2026 # content of the pickapoo_specialattak() function\n\nclass Tamosha(Deskemon):\n    def specialattack(opponent):\n         \u2026 # content of the tamosha_specialattak() function\n<\/code><\/pre>\n<p>and then:<\/p>\n<pre><code>def main():\n    pickapoo = Pickapoo(\u2026)\n    tamosha = Tamosha(\u2026)\n<\/code><\/pre>\n<p>instead of <strong>monkey patching<\/strong> <code>Deskemon<\/code> instances, use proper OOP conception and make Deskemon the base class of all your instances. Then you create a specialized instance for each <code>Deskemon<\/code> object, and that&#8217;s the thing you initialize.<\/p>\n<p>N.B.1: you should init all your objects in a main function:<\/p>\n<p>N.B.2: you should place all your code at the end in a main function:<\/p>\n<pre><code>def main():\n    # init\n    pickapoo = Pickapoo(\u2026)\n    tamosha = Tamosha(\u2026)\n    lilwilly = Lilwilly(\u2026)\n    bigbboy = Biggboy(\u2026)\n\n    # start up\n    print(\"Welcome to Deskemon Pre-Alpha V1.2\".upper())\n    \u2026\n\n    # play loop\n    while True:\n        deskemon_selection_menu()\n        deskemon_selection_input = input(\"&gt; \")\n        if deskemon_selection_input == \"1\":\n            deskemon = tamosha\n        elif deskemon_selection_input == \"2\":\n            deskemon = pickapoo\n        elif deskemon_selection_input == \"3\":\n            deskemon = lilwilly\n        elif deskemon_selection_input == \"4\":\n            deskemon = biggboi\n        else:\n            continue\n        print(\"You have selected {} as your Deskemon\".upper().format(deskemon))\n        break\n\n    # shut down\n    print(\"Professor Andrew: Alright Jack, it's time to pick your Deskemon.\")\n    \u2026\n    print(\"Jack: OI! \" + name + \"!\")\n    time.sleep(1)\n\n    Battle(deskemon, Jack)\n\nif __name__ == \"__main__\":\n    main()\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Class variable can&#8217;t be defined by function [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] that&#8217;s because the self variable has to be explicitely given to methods in python. As you write it, are you expecting python to read your mind so it guesses that self shall be something from a class your function is not related at all with? So to have it bound you need: add self &#8230; <a title=\"[Solved] Class variable can&#8217;t be defined by function [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\" aria-label=\"More on [Solved] Class variable can&#8217;t be defined by function [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[519,413,349,2139],"class_list":["post-24965","post","type-post","status-publish","format-standard","hentry","category-solved","tag-class","tag-function","tag-python","tag-python-3-4"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Class variable can&#039;t be defined by function [closed] - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Class variable can&#039;t be defined by function [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] that&#8217;s because the self variable has to be explicitely given to methods in python. As you write it, are you expecting python to read your mind so it guesses that self shall be something from a class your function is not related at all with? So to have it bound you need: add self ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-06T19:09:42+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Class variable can&#8217;t be defined by function [closed]\",\"datePublished\":\"2022-12-06T19:09:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\"},\"wordCount\":189,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"class\",\"function\",\"python\",\"python-3.4\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\",\"name\":\"[Solved] Class variable can't be defined by function [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-06T19:09:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Class variable can&#8217;t be defined by function [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Class variable can't be defined by function [closed] - JassWeb","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:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Class variable can't be defined by function [closed] - JassWeb","og_description":"[ad_1] that&#8217;s because the self variable has to be explicitely given to methods in python. As you write it, are you expecting python to read your mind so it guesses that self shall be something from a class your function is not related at all with? So to have it bound you need: add self ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/","og_site_name":"JassWeb","article_published_time":"2022-12-06T19:09:42+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Class variable can&#8217;t be defined by function [closed]","datePublished":"2022-12-06T19:09:42+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/"},"wordCount":189,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["class","function","python","python-3.4"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/","name":"[Solved] Class variable can't be defined by function [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-06T19:09:42+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-class-variable-cant-be-defined-by-function-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Class variable can&#8217;t be defined by function [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/24965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=24965"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/24965\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=24965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=24965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=24965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}