Comment reconnait-on un attribut d'une methode
6. Indices visuels dans la documentation
Dans la documentation Blender (ou autres), voici quelques indications générales pour repérer les méthodes et les attributs :
-
Méthodes :
-
Ont une signature fonctionnelle avec des paramètres (ex. select_set(state)).
-
Souvent décrites comme "Operator" ou "Function".
-
Attributs :
-
N'ont pas de paramètres.
-
Souvent décrites comme des "Properties".
7. Astuce dans un éditeur de code
Si vous utilisez un éditeur comme VSCode ou PyCharm, la distinction est souvent faite automatiquement grâce à l'autocomplétion :
-
Méthodes : Affichées avec () ou avec des icônes spécifiques.
-
Attributs : Affichés comme des valeurs simples.
Conclusion
-
Si vous voyez () à la fin d'une fonction, c'est une méthode.
-
Si vous accédez à une valeur directement, c'est un attribut.
-
Utilisez callable() ou la documentation pour une distinction claire si le contexte n'est pas évident. 😊
Pour différencier les deux types :
-
Méthodes : Souvent décrites comme des "fonctions" et se terminent par ().
-
Exemple : select_set(), keyframe_insert().
-
Attributs : Représentent des données et ne se terminent pas par ().
-
Exemple : location, name.
5. Utilisation de getattr et callable
Python permet de vérifier si un membre est une méthode (exécutable) ou un attribut (non-exécutable) :
4. Comment les identifier dans dir()
La fonction dir() retourne tous les attributs et méthodes d'un objet. Les méthodes se distinguent par leur nature exécutable.
Exemple :
1. Définition :
-
Attributs : Ce sont des données ou propriétés stockées dans l'objet. Ils représentent un état ou une caractéristique de l'objet.
-
Méthodes : Ce sont des fonctions définies à l'intérieur d'une class qui opèrent sur l'objet ou ses attributs. Elles réalisent une action ou une opération.
2. Différences dans leur utilisation :
Attribut |
Méthode |
Ne prend pas de parenthèses lors de l'accès : obj.attribut |
Nécessite des parenthèses pour l'appeler : obj.methode() |
Représente une valeur ou un état. |
Effectue une action ou une opération. |
Peut être une donnée directe (nombre, chaîne, objet, etc.). |
Contient un code exécutable (fonction liée à l'objet). |
3. Exemple avec un objet Blender (bpy.data.objects['Cube'])
Python Accueil