<< Chapter < Page | Chapter >> Page > |
The syntax for passing dList and bList however is significantly different from the previous examples.What you see is something closely akin to an assignment statement. In other words, the parameter named dList is assigned to the argument named listD . Also, the parameter named bList is assigned to the argument named listB . Nothing is passed and assigned to the argument named listC . Furthermore, the two parameters thatare passed through assignment to the named arguments are passed in reverse order relative to the definition of those arguments in the function definition.
Hopefully this explanation along with the code in Listing 4 and the output in Figure 5 will tell you what you need to know about using keyword function arguments.
I also recommend that you create a visualization for the code in Listing 4 and step through the program one instruction at a time. As you do that, pay attention tothe movements of the red and green arrows on the left, the diagram on the right,and the printed material at the bottom. That should help you to better understand the concept of keyword arguments.
The program in Listing 5 defines a function named listModifier with one required argument ( listA ) and a syntax that supports an arbitrary number of arguments ( *wxyz ). (Note the asterisk, *, immediately to the left of wxyz .)
The program in Listing 5 illustrates variable-length arguments .
Listing 5 . Illustration of variable-length arguments. |
---|
# Illustrates variable-length arguments
#--------------------------------------------------------------------------def listModifier(listA,*wxyz):
"""Illustrates variable-length arguments"""print("In listModifier")
#append a numeric value to the list referenced by required argument listAlistA.append(1.00001)#append increasing numeric values to lists referenced by other parameters
count = 2for ref in wxyz:
ref.append(1.00001 * count)count += 1 #end for loop here
return #return nothing#End function definition
aList = ["ab","cd","ef"]bList = ["The","old","list"]
cList = ["This old house"]dList = ["is falling down"]
print("aList = " + str(aList))print("bList = " + str(bList))
print("cList = " + str(cList))print("dList = " + str(dList))
print("Call listModifier")listModifier(aList,bList,cList,dList)
print("Back from listModifier")print("aList = " + str(aList))
print("bList = " + str(bList))print("cList = " + str(cList))
print("dList = " + str(dList)) |
The code in Listing 5 produces the output shown in Figure 6 .
Figure 6 . Output produced by the code in Listing 5. |
---|
aList = ['ab', 'cd', 'ef']
bList = ['The', 'old', 'list']cList = ['This old house']
dList = ['is falling down']Call listModifier
In listModifierBack from listModifier
aList = ['ab', 'cd', 'ef', 1.00001]bList = ['The', 'old', 'list', 2.00002]
cList = ['This old house', 3.00003]dList = ['is falling down', 4.00004] |
The first thing that you should pay attention to is the syntax for defining variable-length arguments in the function named listModifier in Listing 5 . The syntax consists of an asterisk (*) followed by an arbitrary argument name. As mentioned earlier, the function definition in Listing 5 consists of a required argument ( listA ) followed by the syntax for a variable-length group of arguments ( *wxyz ).
Notification Switch
Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?