On 12/08/11 07:04, Emeka wrote:
Hello All,
I need help here, type(item) == [].__class__:. What is the idiomatic way
of doing it?
if type(item) == type([])...
or in this case
if type(item) == list...
But probably preferrable to using type is to use isinstance:
if isinstance(item, list)...
And even more preferable still is don't check the type at
all but just try the operation
try:
item.doSomething()
except AttributeError:
doSomethingElse(item)
But that isn't always appropriate.
def myflatten(my_data):
gut = []
for item in my_data:
if type(item) == [].__class__:
gut = gut + myflatten ( item)
else:
gut.append(item)
return gut
In this particular case you presumably want to be
able to use any iterable object as an argument.
So it might be better written as:
def myflatten(my_data):
gut = []
for item in my_data:
try:
iter(item) # test for iterability
gut = gut + myflatten(item)
except TypeError:
gut.append(item)
return gut
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor