Probleme d'utilisation d'un objet time - Python - Programmation
Marsh Posté le 05-08-2008 à 17:09:13
fucklerest a écrit : Je n'écris pas sur une instance de time? |
Wat?
Marsh Posté le 05-08-2008 à 17:11:31
masklinn a écrit : |
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?
Marsh Posté le 05-08-2008 à 17:16:02
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.
Marsh Posté le 05-08-2008 à 17:28:57
masklinn a écrit : |
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
Marsh Posté le 05-08-2008 à 17:31:28
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 :
|
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 :
|
ou
Code :
|
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)
Marsh Posté le 05-08-2008 à 17:37:00
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
Marsh Posté le 05-08-2008 à 17:40:59
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
Marsh Posté le 05-08-2008 à 17:44:09
masklinn a écrit : |
Je ne savais pas que python en implémentait un.
Merci
Marsh Posté le 05-08-2008 à 17:47:15
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
Marsh Posté le 05-08-2008 à 17:01:40
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