-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkwargs.py
51 lines (34 loc) · 1.29 KB
/
kwargs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""Demonstrates kwargs in python
"""
def analyzekwargs(**kwargs):
print(kwargs)
# Since kwargs is a dictionary here, corresponding dict methods apply
print(kwargs.get('fname', 'Some Name'))
print(kwargs.get('name', 'Some Name'))
# passing kwargs to another function accepting kwargs
print_arguments(**kwargs)
def print_arguments(**kwargs):
for k, v in kwargs.items():
print(k, v)
print_arguments() # no output
print_arguments(fname='Sumeet', lname='Sarkar')
# outputs
# fname Sumeet
# lname Sarkar
def print_arguments2(fname, **kwargs):
for k, v in kwargs.items():
print(k, v)
print_arguments2(fname='Sumeet', lname='Sarkar')
# outputs
# lname Sarkar
def print_arguments3(fname, *args, **kwargs):
print(args)
for k, v in kwargs.items():
print(k, v)
# print_arguments3(fname = 'Sumeet', 'hello', lname = 'Sarkar') # positional arguments follows argument
# print_arguments3('hello', fname = 'Sumeet', lname = 'Sarkar') # still invalid as fname is a named recieving argument
# fname recieves 'Sumeet', and kwargs recieve lname
print_arguments3('Sumeet', lname='Sarkar')
# fname recieves 'Sumeet', args recieve hello and kwargs recieve lname
print_arguments3('Sumeet', 'hello', lname='Sarkar')
analyzekwargs(fname='Sumeet', lname='Sarkar')