IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

POO-Techniques avancées


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut POO-Techniques avancées
    Bonjour,
    mon projet avançant bien, je commence à penser à une future "refactorisation" de mon code.

    Cela m'amène donc à étudier plus sérieusement la programmation objet avec notamment, "mais pas que", l'utilisation de décorateurs comme @staticmethod, @classmethod...

    Connaissez-vous des articles ou tutos sur le sujet ? Vous même avez-vous des infos ou des conseils à partager ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    C'est un sujet difficile.
    Python étant très ouvert côté "styles" n'aide pas beaucoup.

    @staticmethod, @classmethod...

    Dans tous les cas, il y a "method" et pour l'appeler, il faudra écrire quelque chose de la forme nom.method dans lequel "nom" sera le "nom" d'une classe... Mais pourrait être aussi bien le nom d'un module.

    Module et classes partagent donc pas mal d'attributs "boîte" avec un nom "persistent"/"statique" auquel pourra être associé un "état" global - puisque statique.
    Ce qui les différencie c'est qu'on n'hérite pas d'un module et qu'on instancie que les classes.

    Que dire de plus? Pas grand chose, ce sont simplement des "styles" qui permettront d'organiser le code d'une façon parmi d'autres possibles...
    Sans trop vous donnez d'idée sur l'organisation la plus appropriée pour écrire ceci ou cela...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci.

    Il semblerait que "Programming in Python 3-A Complete Introduction to the Python Language" de Mark Summerfield parle de ce genre de choses. Je vais zyeuter cela dès que possible.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Il raconte:
    Some Python programmers consider the use of static methods to be un-Pythonic, and use them only if they are converting code from another language (such as C++ or Java), or if they have a method that does not use self. In Python, rather than using static methods it is usually better to create a module function instead, as we will see in the next subsubsection, or a class method, as we will see in the last section.

    In a similar vein, creating a variable inside a class definition but outside any method creates a static (class) variable. For constants it is usually more convenient to use private module globals, but class variables can often be useful for sharing data among all of a class’s instances.
    Mais, c'est bien de le relire! C'est plein d'idées et de constructions possibles auxquelles on n'a pas le temps de penser quand on développe.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Il va falloir absolument que je lise ce chapitre au plus tôt pour connaître un peu mieux les techniques avancées.

  6. #6
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    424
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 424
    Par défaut
    Pour quelques idées de techniques avancées, je ne peut que conseiller la lecture du dernier hors série de Linux Magazine en ce moment dans les kiosques (53 - mars - avril)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Présentation de quelques techniques avancées DirectX 11
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 10/08/2012, 11h35
  2. [POO] Technique de Multilingue Pour Modele MVC
    Par satyre dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2008, 11h27
  3. Réponses: 4
    Dernier message: 05/09/2007, 15h44
  4. [POO] Techniques de réutilisation de code
    Par iwf-fr dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2006, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo