Also I would like to point out that def foo(*args): #this allows for any number of arguments to be passed.
The *args is powerful when used correctly. *args is a list of any length of arguments being passed to the function and/or class, and the arguments passed can be any type/object you want to pass .
So you might do something like.
def foo(*args):
print len(args)
# this prints the length of the list of the arguements passed
# so using that function you would see something like. in the example I only used basic types but you can pass objects as well.6foo(1, 2, 3, "cat", "mouse", ['bee', 'honey', 'stinger'])
Notice that the length that is returned is only 6 but there are 8 items so it appears to have been passed to the function. In actuallity it is only 6 items. There is 3 integers, then 2 strings, then 1 list that is 3 items long. Thus the length of the list args is 6 items long. I wouldn't recomend passing mixed types like this to a function using args because it can get very confusing.
The star sugar sytax goes even further though....
def foo(*args): print len(args)
foo(1,2,3,"cat","mouse",*['bee','honey','stinger']) 8
The star in the call means to apply each member of the list as an argument. Isn't that cool?
HTH,
Jacob
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor