Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1455 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Probleme d'utilisation d'un objet time

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme d'utilisation d'un objet time

n°1769657
fucklerest
Posté le 05-08-2008 à 17:01:40  profilanswer
 

Bonjour,
 
J'ai un petit problème assez basic sur l'utilsation des objets time.  
Je veux initialiser une variable de type time à 0, puis lui ajouter des heures via une boucle.
 
Voila mon code puis la réponse de l'interpreteur :

import datetime
res = datetime.time(0, 0, 0)
print res
res.hour = 3


 

00:00:00
Traceback (most recent call last):
  File "C:/test date 2", line 4, in <module>
    res.hour = 3
AttributeError: attribute 'hour' of 'datetime.time' objects is not writable


 
Je n'écris pas sur une instance de time?
 
Merci d'avance
 

mood
Publicité
Posté le 05-08-2008 à 17:01:40  profilanswer
 

n°1769665
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2008 à 17:09:13  profilanswer
 

fucklerest a écrit :

Je n'écris pas sur une instance de time?


Wat?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1769667
fucklerest
Posté le 05-08-2008 à 17:11:31  profilanswer
 


Je comprends pas pourquoi il me dit que je suis en lecture seule en fait.
 
Res, c'est ma variable, j'ai le droit d'écrire dessus normalement! non?

n°1769677
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2008 à 17:16:02  profilanswer
 

fucklerest a écrit :

Res, c'est ma variable, j'ai le droit d'écrire dessus normalement! non?


Heuu oui et?

 

L'attribut "hour" de l'objet "datetime.time" a été défini comme étant en lecture seule, c'est tout, il y a une méthode permettant d'updater une instance de datetime.time et elle est dans la doc. time.hour, time.minute, time.second et time.microsecond ont été créés pour pouvoir extraire facilement (et de manière lisible) le contenu de l'objet, pas pour le mettre à jour.

Message cité 1 fois
Message édité par masklinn le 05-08-2008 à 17:17:35

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1769690
fucklerest
Posté le 05-08-2008 à 17:28:57  profilanswer
 

masklinn a écrit :


Heuu oui et?
 
L'attribut "hour" de l'objet "datetime.time" a été défini comme étant en lecture seule, c'est tout, il y a une méthode permettant d'updater une instance de datetime.time et elle est dans la doc. time.hour, time.minute, time.second et time.microsecond ont été créés pour pouvoir extraire facilement (et de manière lisible) le contenu de l'objet, pas pour le mettre à jour.


 
Je suis sur la doc et je ne vois rien de tel : http://docs.python.org/lib/module-time.html
a moins que tu ne parles de la fonction replace dont on parle ici: http://docs.python.org/lib/datetime-time.html
 
donc ca veut dire que si je veux ajouter une heure a mon objet, je dois faire un truc genre :
 

res = res.replace(1)


 
c'est ce que tu préconises?
d'ailleurs ca n'entraine pas un problème de fuite de mémoire?
 
Merci

Message cité 1 fois
Message édité par fucklerest le 05-08-2008 à 17:29:23
n°1769697
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2008 à 17:31:28  profilanswer
 

fucklerest a écrit :

Je suis sur la doc et je ne vois rien de tel : http://docs.python.org/lib/module-time.html


et pourtant

fucklerest a écrit :

a moins que tu ne parles de la fonction replace dont on parle ici: http://docs.python.org/lib/datetime-time.html


Oui, elle est très clairement indiquée comme dévolue à cet usage

fucklerest a écrit :

donc ca veut dire que si je veux ajouter une heure a mon objet, je dois faire un truc genre :

 

res = res.replace(1)



oui (enfin non, ça ça sert à donner à res.hour la valeur 1), à noter que -- comme indiqué dans la documentation -- replace prend des keyword arguments, donc on peut écrire

Code :
  1. res = res.replace(hour=1)


ou

Code :
  1. res = res.replace(second=42)


fucklerest a écrit :

c'est ce que tu préconises?


oui

fucklerest a écrit :

d'ailleurs ca n'entraine pas un problème de fuite de mémoire?


Non (je vois pas pourquoi ça génèrerais une fuite mémoire)


Message édité par masklinn le 05-08-2008 à 17:33:56

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1769704
fucklerest
Posté le 05-08-2008 à 17:37:00  profilanswer
 

fuite de mémoire parce que res.replace() génère une nouvelle instance d'objet time(). res prend l'adresse de cette nouvelle instance, et que devient l'instance pointée par res auparavent
 
et je n'ai pas remarqué mais le code que je veux est en fait :

res = res.replace(res.hour + 1)


 
Bon c'est pas très beau, mais ca suffira..
Merci ;)

n°1769710
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2008 à 17:40:59  profilanswer
 

fucklerest a écrit :

fuite de mémoire parce que res.replace() génère une nouvelle instance d'objet time(). res prend l'adresse de cette nouvelle instance, et que devient l'instance pointée par res auparavent


Et alors?
 
Apparement, t'es pas très au fait sur le concept de garbage collector


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1769715
fucklerest
Posté le 05-08-2008 à 17:44:09  profilanswer
 

masklinn a écrit :


Et alors?
 
Apparement, t'es pas très au fait sur le concept de garbage collector


 
Je ne savais pas que python en implémentait un.
 
Merci

n°1769719
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2008 à 17:47:15  profilanswer
 

fucklerest a écrit :

Je ne savais pas que python en implémentait un.


Heuuu t'as jamais remarque que personne ne supprimait jamais d'objets manuellement en python [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Probleme d'utilisation d'un objet time

 

Sujets relatifs
Probleme Ajax/Prototype ajax.requestProbleme XML via XMLDom et base Oracle
Probleme compatibilité navigateurMAJ aide probléme mini calculatrice en " C " (debutant)
[Problème] Lycos : Register_global : Safe mode.probleme sur les spreites en j2me
[java] problème avec l'appel d'une commande unixProblème avec un update lié à un onclick
Probleme d'affichage de tableau 2dProbleme dans mon application sous vb 2008
Plus de sujets relatifs à : Probleme d'utilisation d'un objet time


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR