Bonjour,

J'ai une classe User, que je souhaite utiliser dans tout mon code car je suis en train d'écrire
une appli pour faire un prompt. Dans ce cadre, j'utilise la librairie CMd. mais ce n'est pas le sujet.
Je ne sais pas comment passer mon user à ma classe Prompt au sens ou il existe pas de méthode
pour passer un objet ?
C'est une librairie https://docs.python.org/fr/3.6/library/cmd.html

Je ne vois pas comment créer une valeur statique dans un objet,
afin d'être utilisé par tous les objets autres.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
class User():
"""docstring for User."""
global _user
    global _password
    _menu = """Votre identifiant:
    """
_key = None
    def __init__(self):
        pass
    def getUser(self):
        return self._user
    def setUser(self, user):
logging.disabled = True
logging.info('We processed %s records', user)
        self._user = user
def getUser(self):
        return self._user
    def getPassword(self):
        return self._password
    def setPassword(self, password):
logging.info('We processed %s record password', password)
        self._password = password
def display(self):
self._key = open(os.path.expanduser('~/.ssh/id_rsa.pub')).read()
        self.setUser(input(self._menu))
        password = getpass(prompt='Mot de passe : ', stream=None)
        self.setPassword(password)
        logging.info('Save connexion configuration %s ', password)

    ''' Return key connexion'''
def getkey(self):
        return self._key


class Menu:
_fileEnv = None
_user = None
_hosts = None
_db = None
_port = 22
_selection = None
_MenuSelect = {
        1: "AddSshKeys",
        2: "AddConfigEnv",
        3: "ListServerUp",
        4: "UpdateYum",
        5: "displayEnv",
        6: "end"
}
    _clientSsh = None
_retry = 3
_delay = 5
_timeout = 3
_menu = """
#####################################################################
- Choisir l'action à effectuer sur :
       [1]. Déployer sa clef ssh public sur des serveurs
       [2]. Configurer les variables d'environnements
       [3]. Lister les serveurs dispo. en base
       [4]. Faire la mise à jour de la liste des serveurs
       [5]. Afficher les variables d'environnements
       [6]. Quitter/Sortir
#####################################################################
    """
_barresplit ='''
#####################################################################\n    '''
def __init__(self, user):
self._fileEnv = None
self._user = user
self._db = TinyDB('../data/db.json')

    def display(self, prompt=False):
print(u"xxxxxxxxxxxxxx ")
        if(prompt):
print("Client en mode prompt ...")
            self.prompt()
        else:
print("Client avec menu interactif ...")
            if (self._hosts == None):
self.choiceFromServer()
            else:
print(u'Utilisation des serveurs en mémoire')

            self._selection = -1
while self._selection:
print(self._menu)
                self._selection = int(input("Choisir une option : "))
                if (self._selection >= 0) and (self._selection <= 6):
logging.info(self._MenuSelect[self._selection])
                     getattr(self, self._MenuSelect[self._selection])()

    def prompt(self):
monPrompt().cmdloop() <- ??? comment utiliser l'objet User dans cette Classe ou je n'ai pas la main ? décorateur ?? ou objet Statique ?
....

class CloePrompt(Cmd):
intro = 'Outil de commande cliente ?[command] [option]\n' \
            'Liste :\n' \
            'servers        :   Liste des serveurs disponibles\n' \
            'addServer [IP] :   Ajouter un serveur\n' \
            'rmServer [IP]  :   Effacer un serveur\n' \
            'addFileServer  :   Ajouter une liste de serveur par fichier\n'\
            'pingServers    :   Tester si les serveurs sont up\n' \
            'sshClient [IP] :   Se connecter en ssh à n client\n' \
            'cls            :   Cls ou Clear screen, efface écran'\
            'quit :         :   Quitter\n'
prompt =  '>'
_db = None
_hosts = None
_port = 22
_retry = 3
_delay = 5
_timeout = 3


def __init__(self):
super().__init__()
        self._db = DbDao()

        print("user {user}".format(user=_user)) <--- Euh Oups marche pas, mais je ne sais pas comment faire, car je veux une instance déjà initialisée dans la classe principale

    def do_servers(self, args):
"""servers command. If you provide <option>, it will greet you with it."""
if len(args) == 0:
name = "Vous n'avez pas choisi d'option"
else:
name = args
print("Votre option, %s" % name)
Merci de vos conseils, ne faites pas attention à l'indentation, la recopie du code a été ... moyen. mais chez moi, c'est correct.