2009/10/19 Alan Gauld <alan.ga...@btinternet.com>: >> Usually it is recommended to use hasattr() instead of type() >> hasattr(s, 'upper') > > Nope, they do completely different things > I think you might be thinking of isinstance() which can be used instead of > type(). I see you use hasattr as a means of testing for a method but that is > still different from testing type - the method names might be the same but > the functions be completely different in effect!
Indeed, I was and stand corrected. >>> In order to use a list comprehension I created this function instead. >>> def upperfy(item) >>> try: >>> item = item.upper() >>> except AttributeError: >>> pass >>> return item > >> I would move return item under the except and remove the pass, other >> might disagree on this. > > I would :-) > Doing that would result in None being returned for each successful > conversion. The OPs code is correct (even if unnecessary) I missed that the try: did not return anything. I was thinking more of something like this. def upperfy(item): try: item.upper() return item except AttributeError: return item Thanks for correcting me! Greets Sander PS: Note to self, never reply in a hurry :-( _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor