Repository navigation
Expand file tree
/
Copy pathpositionalArg.py
More file actions
55 lines (48 loc) · 2.32 KB
/
Copy pathpositionalArg.py
File metadata and controls
55 lines (48 loc) · 2.32 KB
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
52
53
54
55
# First let's see this
def print_members(member1, member2, member3):
print(f"member1 is {member1}")
print(f"member2 is {member2}")
print(f"member3 is {member3}")
print_members("Frank", "Dean", "Sammy")
print_members(member1="Frank", member2="Dean", member3="Sammy")
# it will give you the same result because we don't specify what the parameters should be.
# ----------------------------------------------------------------------------------------------
# If we want the function only accept Positional Arguments :
def print_three_members(member1, member2, member3, /):
print(f"member1 is {member1}")
print(f"member2 is {member2}")
print(f"member3 is {member3}")
print_three_members("Frank", "Dean", "Sammy")
# It works fine since all the arguments for the defined parameters are passed as
# positional
# ----------------------------------------------------------------------------------------------
print_three_members("Frank", "Sammy")
# see here we should give it the same numbers of parameters
# see error below
"""
print_three_members("Frank", "Sammy")
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
TypeError: print_three_members() missing 1 required positional argument: 'member3'
"""
# ----------------------------------------------------------------------------------------------
print_three_members("Frank", "Dean", "Sammy", "Bob")
# if you pass more than the number of formal arguments
# see error below
"""
print_three_members("Frank", "Dean", "Sammy", "Bob")
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: print_three_members() takes 3 positional arguments but 4 were given
"""
# ----------------------------------------------------------------------------------------------
print_three_members(member1="Frank", member2="Sammy", member3="Dean")
# It will not work since I have passed the parameters "member1" as keyword with argument "Frank"
# see error below
"""
TypeError: print_three_members() got some positional-only arguments passed as keyword arguments: 'member1, member2, member3'
"""
# ----------------------------------------------------------------------------------------------
print_three_members("Frank", "Dean", member3="Sammy")
# It will not work as mentioned above see error #
"""
TypeError: print_three_members() got some positional-only arguments passed as keyword arguments: 'member3'
"""