Donc, dans le paquet docutils de python, il y a une classe (Image) qui a une méthode (align). Comme je l'ai compris, les méthodes prennent self comme premier argument à moins qu'elles ne soient décorées comme @classmethod ou @staticmethod, mais align ne le fait pas. Le code correspondant est copié ci-dessous (full code here).Méthodes d'instance et méthodes statiques dans les classes python
class Image(Directive):
def align(argument):
# This is not callable as self.align. We cannot make it a
# staticmethod because we're saving an unbound method in
# option_spec below.
return directives.choice(argument, Image.align_values)
J'utilise ce code comme base pour mes propres fins, et je l'ai essayé à la fois de donner aligner un argument en soi et en le transformant en une méthode statique (après avoir changé le nom afin de ne pas entrer en conflit avec l'auto .align), mais a eu des erreurs avec l'une ou l'autre approche. Que se passe-t-il?
Pourriez-vous indiquer quelle erreur obtenez-vous? – MaLiN2223
avec @staticmethod: l'objet 'staticmethod' n'est pas appelable. Avec 'self' ajouté: align_option() missing 1 argument positionnel requis: 'arg'. – vorpal
En fait, ceci est documenté: "Ceci n'est pas callable sous self.align, nous ne pouvons pas en faire une méthode statique car nous sauvegardons une méthode non liée dans option_spec ci-dessous." –