Hi,
I have just started learning python...
Following is an example from dive into python:
def info(object,spacing=10,collapse=1):
"""Print methods and doc strings.
Takes module,class,list,dictionary or string."""
methodList=[method for method in dir(object) if callable(getattr(object,method))]
processFunc=collapse and (lambda s: " ".join(s.split())) or (lambda s:s)
print "\n".join(["%s %s" %(method.ljust(spacing),processFunc(str(getattr(object,method).__doc__))) for method in methodList])
if __name__=="__main__":
print info.__doc__
"""Print methods and doc strings.
Takes module,class,list,dictionary or string."""
methodList=[method for method in dir(object) if callable(getattr(object,method))]
processFunc=collapse and (lambda s: " ".join(s.split())) or (lambda s:s)
print "\n".join(["%s %s" %(method.ljust(spacing),processFunc(str(getattr(object,method).__doc__))) for method in methodList])
if __name__=="__main__":
print info.__doc__
now if i do the following:
li=[]
info(li)
i get the expected output
what i dont understand is the use of variable processFunc and i dont see the lambda function being called anywhere.
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor