Maison >développement back-end >Tutoriel Python >Comment appeler des méthodes statiques de classe à partir du corps de classe en Python ?
For Python versions 3.10 and above, calling a static method from within the class body is straightforward. However, for versions 3.9 and earlier, this poses a challenge.
When attempting to call a static method from within the class body, you may encounter the following error:
TypeError: 'staticmethod' object is not callable
This error occurs because static methods, when declared using the staticmethod decorator, become descriptors. Descriptors bind to the class instead of the instance, making them inaccessible from within the class body.
One workaround is to access the original raw function through the __func__ attribute of the static method object:
<code class="python">class Klass(object): @staticmethod def stat_func(): return 42 _ANS = stat_func.__func__() # call the staticmethod def method(self): ret = Klass.stat_func() return ret</code>
<code class="python">class Klass(object): @staticmethod def stat_func(): return 42 def method(self): ret = Klass.stat_func() return ret</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!