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 :

probleme avec les threads et class


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut probleme avec les threads et class
    bonjour à tous

    voila j'ai crée une class reperage qui me retourne dans un terminal la variable distance entre le capteur a ultrason et l'obstacle en face.
    je met cette class dans un "thread" et ca marche tres bien.

    mais j'aimerais crée une autre class guidage qui grace la variable distance de ma class reperage permet de me guider. En gros est ce possible de lire une variable qui apartient a une autre classe? sachant que ma class guidage sera aussi un thread

    comment faire car j'ai lu qu'avec les threads il fallait bien attendre que la variable soit arreter d'etre utiliser pour qu'un autre thread l'utilise.

    en gros ca donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import serial
    from threading import Thread
     
     
     
    class Reperage(Thread):
        def __init__(self,port):
            Thread.__init__(self)
            self.port=port
     
        def run(self):
            while True:
                      distance = self.distanceLecture(self.port)# lecture de la distance + traitement de la donnee distance
                      print(("la distance est de : {0}").format(distance))
     
        def distanceLecture(self,port):
            """lecture de la distance + traitement de la donnee distance"""
            return distance
     
    class Guidage(Thread):
        def __init__(self,distance):
            Thread.__init__(self)
            self.distance= distance 
     
        def run(self):
              while True:
                      """traitement du guidage en fonction de la distance"""
     
     
     
     
    if __name__ == "__main__":
        port= serial.Serial('/dev/ttyAMA0',115200,timeout=1)
        t1 = Reperage(port)
        t2 = Guidage(distance)
    voici un extrait de mon code mais ca ne marche pas

    merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    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 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Salut,

    Citation Envoyé par cosmoff Voir le message
    mais j'aimerais crée une autre class guidage qui grace la variable distance de ma class reperage permet de me guider. En gros est ce possible de lire une variable qui apartient a une autre classe? sachant que ma class guidage sera aussi un thread
    En Python, une "variable" n'est pas un attribut d'"instance" ou de "class" et peut avoir une portée "locale" ou "globale".
    Lorsque vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        def run(self):
            while True:
                      distance = self.distanceLecture(self.port)# lecture de la distance + traitement de la donnee distance
                      print(("la distance est de : {0}").format(distance))
    "distance" est une variable "locale" à la méthode "run".
    Impossible d'y accéder depuis "l'extérieur" de la fonction!

    Vous pourriez en faire une variable "globale" ou un attribut de l'instance. Ce qui permettrait de résoudre votre problème.
    Et vous avez plein de tutos à votre disposition pour apprendre comment réaliser cela dans un cas comme dans l'autre.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. probleme avec les thread
    Par ashurah dans le forum Concurrence et multi-thread
    Réponses: 15
    Dernier message: 26/03/2010, 14h05
  2. Probleme avec les Threads
    Par ouxss dans le forum C++
    Réponses: 2
    Dernier message: 05/01/2010, 10h27
  3. Probleme avec les threads
    Par Loenix dans le forum Général Python
    Réponses: 4
    Dernier message: 04/06/2009, 14h50
  4. Probleme avec les thread
    Par jonny dans le forum MFC
    Réponses: 11
    Dernier message: 01/06/2006, 17h37
  5. Probleme avec les threads
    Par Orahn dans le forum MFC
    Réponses: 5
    Dernier message: 04/11/2005, 10h14

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