begin process at 2010 09 08 23:07:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Débutant(e)

 > 

[Python3.1.2] Impossible d'utiliser __init__ avec des paramètres


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Python3.1.2] Impossible d'utiliser __init__ avec des paramètres

jeudi 6 mai 2010 à 18:00:16 | [Python3.1.2] Impossible d'utiliser __init__ avec des paramètres

titoulaka

bonjour,

j'ai créer une classe avec deux arguments sur le constructeur, lorsque j'essaie de l'utiliser j'ai comme message d'erreur :

>>> b = MyLog(12,25)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
b = MyLog(12,25)
TypeError: 'module' object is not callable



avec un exemple du livre de G Swinnen cela fonctionne,
ou avec un exemple de mon cru
Code Python :
class Taz:
	def __init__(self,un=None,deux=None):
		print('dans le constructeur')

cela donne


>>> x = Taz('1',2)
dans le constructeur
>>>



Je ne vois pas la différence.

Pouvez vous m'indiquez mon erreur.

Merci

@+
le code :
Code Python :
import time
import os
class MyLog:
	"Gestion des log"
	def __init__(self,Pathfile=None,FileName=None):
		# on creer un objet time
		self.temps = time
		if FileName == None:
			# Le nom est vide on initialise avec le timestamp
			self.FileLog = 'Kersave'+ str(int(self.temps.time())) + '.log'
			# ou self.FileLog = 'Kersave'+ str(int(self.temps.strftime("%Y%m%d%H%M%S")) + '.log' 
		else:
			self.FileLog = FileName
		if os.path.isdir(PathFile):
			self.FileLog = PathFile + self.FileLog
		else:
			# Ail le chemin n'existe pas ou n'est pas bon, on fait quoi ? un log dans c:\temp
			if not os.path.isdir('c:\temp'):
				os.mkdirs('c:\temp')
				PathFile = 'c:\temp\\'
			self.FileLog = Pathfile + self.FileLog
	
	def __del__(self):
		#destructeur
		sefl.close_file()
	
	def open_file(self):
		# creation du fichier de log
		self.file = open(self.FileLog,'a')
	
	def close_file(self):
		# Fermeture du fichier de log
		self.file.close()
	
	def  add_log(self,text):
		# Ajout d'information dans le log
		# Formatage [date] texte self.temps.strftime("[%d/%m/%Y %H:%M:%S]"
		self.file.write(self.temps.strftime("[%d/%m/%Y %H:%M:%S]") + ' ' + text + '\r\n')
		
	def view_log(self):
		# Affiche le log
		self.close_file()
		f = open(self.FileLog,'r')
		txt = ''
		while 1:
			tmp = f.readline()
			if tmp == '':
				break
			txt = txt + tmp
		f.close()
		print(txt)
		# pkoi pas un return txt plus tard ?
		
	def clear_file(self):
		# destruction du fichier on le vide mais le garde ouvert (pour le cas ou ;))
		self.close_file()
		a = open(self.FileLog,'w')
		a.close()
		self.open_file()
# fin de la classe
vendredi 7 mai 2010 à 13:03:09 | Re : [Python3.1.2] Impossible d'utiliser __init__ avec des paramètres

titoulaka

après test si je fait
Code Python :
logage = MyLog('C:\Temp','Log de test')
logage.add_log('ligne de test 1')
logage.add_log('ligne de test 2')
logage.add_log('ligne de test 3')
logage.view_log()

en bas du fichier contenant le code du 1er message, cela fonctionne

si je creer un fichier simple
Code Python :
# -*- coding: utf-8 -*-
import os
import time
import shutil
import configparser
import MyLog

logage = MyLog('C:\Temp','Log de test')
logage.add_log('ligne de test 1')
logage.add_log('ligne de test 2')
logage.add_log('ligne de test 3')
logage.view_log()

=>

C:\Python31>python.exe hum.py
Traceback (most recent call last):
File "hum.py", line 12, in <module>
logage = MyLog('C:\Temp','Log de test')
TypeError: 'module' object is not callable[/code]

le x = MyLog fonctionne
help(x) donne
[quote]
C:\Python31>python.exe hum.py
Help on module MyLog:

NAME
MyLog

FILE
c:\python31\mylog.py

CLASSES
builtins.object
MyLog

class MyLog(builtins.object)
| Gestion des log
|
| Methods defined here:
|
| __del__(self)
|
| __init__(self, PathFile=None, FileName=None)
|
| add_log(self, text)
|
| clear_file(self)
|
| close_file(self)
|
| open_file(self)
|
| view_log(self)
|
| ---------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)



Je ne vois pas pourquoi le fait d'importer la classe d'un fichier ne me permet pas d'utiliser la classe comme il faut.

Où est mon erreur ?

Merci

@+
vendredi 7 mai 2010 à 22:39:11 | Re : [Python3.1.2] Impossible d'utiliser __init__ avec des paramètres

titoulaka

Réponse acceptée !
bon ben me manquais la notion de module.

Pour ceux que ça intéressent

en gros une classe ou une fonction
class bar:
blabla

dans un fichier fu sera utiliser de la façon suivante dans un autre fichier
import fu

instanceDeClasse = fu.bar()

c'est tout ..

Merci à ceux qui ont lu (ou pas)

@+


Cette discussion est classée dans : file, log, self, def, filelog


Répondre à ce message

Sujets en rapport avec ce message

Comment lancer son application !!!!!!!!!! [ par steede ] Voila, j'ai écrit (pompé) une malheureuse app (extraite d'un exemple "simple" de wx) et j'aimerais la faire fonctionner !!!!ci dessous la ligne de la Diverses questions et precision [ par sheorogath ] Bonjour,je me remets au python mais plus serieusement cette fois ci :palors j'ai plusieurs question sur des choses sur lesquels je trouve que peux d'i matrice symétrique [ par delaval ] bonjour, je suis actuellement en train d'écrire une fonction symétrique qui renvoie True or False selon la matrice que je rentre. Voici mon code:class Allocation de mémoire et référence [ par benc77 ] Bonjour, je vous soumet un problème bizarre de collision de variables : Dans le code suivant, la méthode __init__ de la classe MySemTree ne semble p PYgtk bouton en premier plan [ par seb57sk8 ] Bonjour a tous et a toute, Je reviens a la charge pour une questionde positionnement de widget: J'utilise PYgtk et la methode fixed. j'aimerai que Tkinter, non déplacement d'un ballon incompréhensible [ par ubranov ] Bonjour, Je cherche simplement à animer un petit ballon dans une fenêtre grâce au module Tkinter. Je n'arrive vraiment pas à comprendre en quoi le co urllib2 et interface graphique [ par rezuz ] bonjour à tous. aprés avoir eu de nombreux "problemme" avec les 72 minutes de limitation vidéo de MEGAVIDEO, j'ai décidé de faire un programme qui se Aide pour acquisition d'une pression [ par sebfluo ] Bonjour a tous.Je suis entrain de réaliser un petit programme avec une interface graphique(réalisée avec QT designer et PyQT) permettant d'acquérir un Débutant, complètement perdu... [ par Mgiv64 ] Bonjour à tous,  J'ai programmé une petite application qui réalise des backup d'un fichier de données (d'une application comptable).Mon programme loca classe abstraite [ par oxkao ] bonjours,voili voilou je me suis mis à python et je pensais (en tant que langage objet) retrouver les mêmes principe qu'en C++ ou java je cherche donc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales