Bonjour,
Je suis formé en java mais je m'intéresse depuis peu à python pour son côté libre, open source est la richesse des api qu'on peut trouver.
Je souhaitais mettre une méthode de class (équivalant à static en java) dans la classe suivante mais python semble ne pas comprendre.
J'ai fais quelques recherches sur seek.fr mais rien de satifaisant.
Voici le code.
et Mainmenu
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 -*- coding: latin-1 -*- ''' # ce code pourrait faire partie d'un logiciel libre payant open source GPL chaque personne pourrait ou non ce faire pyer pour le travail sur son code. # Ce code serait distribuer en open source dans l'espoir qu'il serait am�lior� et maintenu par une communaut� motiv�e et afin que le programme # qui en r�sulte ne meure si possible jamais. Created on 11 févr. 2015 @author: Battant ''' import logging, logging.handlers from PyQt4.QtGui import * from mainmenu import mainmenu import sys ''' Cette classe va démarrer le programme de facturation billmanagee ''' class Starter : verbose = False #La méthode prepareLogFile fait le nécessaire pour préparer le journal de débugage et d'erreur def prepareLogFile(cls) : Starter.logfile.vl = logging.DEBUG Starter.logfile = "billManagerOutput.log" Starter.logfile.basicConfig (filename = Starter, filemode='a', format = Starter.form ,level= Starter.logfile.lvl) Starter.file_handler = Starter.logging.handlers.RotatingFileHandler(Starter.logfile, backupCount=7, encoding='utf-8') Starter.file_handler.setFormatter(logging.Formatter(Starter.form)) Starter.logger.addHandler(Starter.file_handler) if __name__=='__main__': Starter.app = QApplication(sys.argv) Starter.prepareLogFile() print ('session principale') if '-v' in sys.argv : verbose = True if verbose : logging.debug ('session principale') logging.debug ('construction mainmenu') window = mainmenu.MainMenu() window.show() if verbose : Starter.logging.debug ('mainmenu construit') sys.exit(Starter.app.exec_())
Question :
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 #!/usr/bin/env python # -*- coding: latin-1 - # Auteur Battant # ce code pourrait faire partie d'un logiciel libre payant open source GPL chaque personne pourrait ou non ce faire pyer pour le travail sur son code. # Ce code serait distribuer en open source dans l'espoir qu'il serait am�lior� et maintenu par une communaut� motiv�e et afin que le programme # qui en r�sulte ne meure si possible jamais. import logging, logging.handlers from PyQt4.QtGui import * import sys class MainMenu (QWidget) : def __init__(self, parent=None) : QWidget.__init__(self, parent) self.clients = QPushButton('Clients',self) self.prestations = QPushButton ('Prestations',self) self.factures = QPushButton ('Facture',self) self.agenda = QPushButton ('agenda',self) self.Quitter = QPushButton('Quitter',self) self.configEvent() self.setWindowTitle('Menu principal') self.menuLayout = QBoxLayout() self.menuLayout.addWidget(self.clients) self.menuLayout.addWidget(self.prestations) self.menuLayout.addWidget(self.factures) self.menuLayout.addWidget(self.agenda) self.setLayout(self.menuLayout) #quitLayout = QHBoxLayout() #quitLayout.addWidget(Quitter) self.menuLayout.addWidget(self.Quitter) def configEvent(self) : # code de VinsS de developpez.com self.Quitter.clicked.connect(quit)
Pourquoi python ne comprend pas que cette méthode qui est static =
Exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Starter.prepareLogFile()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Traceback (most recent call last): File "Starter.py", line 48, in <module> Starter.prepareLogFile() TypeError: unbound method prepareLogFile() must be called with Starter instance as first argument (got nothing instead)
Merci pour votre aide
Salutations
Partager