Méthode static est python
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.
Code:
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_()) |
et Mainmenu
Code:
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) |
Question :
Pourquoi python ne comprend pas que cette méthode qui est static =
Code:
1 2
|
Starter.prepareLogFile() |
Exception :
Code:
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