On Mon, Mar 2, 2009 at 11:42 AM, Matteo Bertini <mat...@naufraghi.net> wrote: > Ciao a tutti! Stamani ho un paio di dubbi random: > > 1) E' possibile usare functools.partial con funzioni come time.strptime? > > Docstring: > strptime(string, format) -> struct_time <--- anche se la > documentazione dice strptime(string[, format]) > > In [35]: parse_time = functools.partial(time.strptime, format="%d/%m/%Y > %H:%M") > In [36]: parse_time("12/12/2009 2:34") > TypeError Traceback (most recent call last) > TypeError: strptime() takes no keyword arguments
Un trucco e` invertire i parametri: In [9]: functools.partial(lambda f, s: time.strptime(s, f), "%d")("3") Out[9]: (1900, 1, 3, 0, 0, 0, 2, 3, -1) Come vedi, ho creato una lambda che prende i parametri invertiti per passarli nel modo giusto a time.strptime. Non e` di certo il modo migliore :-D > 2) set.add(item) ha due possibili effetti (a) se item è già in set non > fa niente (b) se item non è in set lo aggiunge. > > Spesso mi ritrovo a creare funzioni di utilità come: > > def added(aset, item): > if item in aset: > return False > else: > aset.add(item) > return True > > Non potrebbe aver senso avere un set che in qualche modo notifichi un > cambiamento del suo stato? Secondo me no, almeno per come la vedo io. Perche` ti deve interessare sapere se un oggetto e` stato aggiunto in un set? Sai che in un set ci entrano a meno che non siano un duplicato di qualcosa di gia` esistente. > Per analogia: > le liste non hanno chiamate nop [].extend([]) e` una nop > il set è un po' una via di mezzo... Il set() e` un insieme, che supporta operazioni insiemistiche. L'aggiunta di un elemento esistente non altera lo stato del set. Se proprio ci tieni puoi controllare len(s) prima e dopo l'inserimento, per vedere se la sua dimensione e` cambiata. Oppure usare l'in come hai fatto tu per sapere se c'e` o meno. -- Lawrence, http://oluyede.org - http://twitter.com/lawrenceoluyede "It is difficult to get a man to understand something when his salary depends on not understanding it" - Upton Sinclair _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python