2015-07-17 14:33 GMT+01:00 Davide Muzzarelli <d.muzzare...@dav-muz.net>:
Yes: if greeting: No: if greeting == True: Nel suggerimento la differenza tra "Yes" e "No" è solo sintassi. > No. E' semantica. Nel primo caso stai di fatto andando a chiamare greeting.__nonzero__ se presente, se no greeting.__len__ e altrimenti e' semplicemente vero. Nel secondo invece stai andando a chiamare greeting.__eq__ (oppure greeting.__neq__ oppure greeting.__cmp__) oppure stai andando a confrontare gli id degli oggetti. Tipicamente quei due frammenti non sono sintatticamente diversi: sono filosoficamente diversi. Sono pure ortogonali. Il caso in cui collassano e' essenzialmente se greeting e' un booleano o un'intero (o qualcosa che si comporta come tale). Il terzo caso invece non è affatto sintassi e lo usi quando vuoi essere > sicuro anche del tipo. > Il terzo, come i primi due, non e' solo sintassi e *non* lo usi. E se lo usi mettici dei bei commenti a spiegare perche' lo usi. Siccome nel 99.9% dei casi e' un bug, e' molto facile che il primo che ripassa sul codice te lo sega via. Per cui se c'era un buon motivo, e' bene specificarlo. Tra l'altro in Python quando cominci a fare check espliciti sui tipi il codice puzzicchia. Ci sono motivi per farlo e niente da dire... ma sono *moolto* rari. Diventa worse se usi l'is quando non serve, ovvero nella maggioranza dei > casi. > Praticamente nella totalita'. Comunque sia == che is in quel caso sono moolto sospetti. -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python