Skip to content

Commit 149c7fa

Browse files
authored
Merge branch 'master' into code-image-generator
2 parents 7bd0152 + 727ad8d commit 149c7fa

14 files changed

+111
-3
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# What Are Python Asterisk and Slash Special Parameters For?
2+
3+
This folder contains supplementary code for the Real Python tutorial [What Are Python Asterisk and Slash Special Parameters For?](https://realpython.com/python-asterisk-and-slash-special-parameters/). You can copy the code examples, or continue your learning by experimenting more with them.
4+
5+
## Setup
6+
7+
No special setup is required for this tutorial. The code snippets were produced using Python 3.11
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def asterisk_usage(either, *, keyword_only):
2+
print(either, keyword_only)
3+
4+
5+
asterisk_usage(either="Frank", keyword_only="Dean")
6+
asterisk_usage("Frank", keyword_only="Dean")
7+
8+
# This would be invalid:
9+
# asterisk_usage("Frank", "Dean")
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
def get_average(*args):
2+
print(args)
3+
return sum(args) / len(args)
4+
5+
6+
get_average(1, 2, 3)
7+
get_average(1, 3, 5, 7, 9)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def print_four_members(member1, member2, /, member3, *, member4):
2+
print(f"member1 is {member1}")
3+
print(f"member2 is {member2}")
4+
print(f"member3 is {member3}")
5+
print(f"member4 is {member4}")
6+
7+
8+
print_four_members("Frank", "Dean", member3="Sammy", member4="Joey")
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def print_three_members(member1, member2, /, *, member3):
2+
print(f"member1 is {member1}")
3+
print(f"member2 is {member2}")
4+
print(f"member3 is {member3}")
5+
6+
7+
print_three_members("Frank", "Dean", member3="Sammy")
8+
9+
# This would be invalid:
10+
# print_three_members("Frank", "Dean", "Sammy")
11+
# print_three_members("Frank", member2="Dean", member3="Sammy")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
def print_three_members(*, member1, member2, member3):
2+
print(f"member1 is {member1}")
3+
print(f"member2 is {member2}")
4+
print(f"member3 is {member3}")
5+
6+
7+
print_three_members(member1="Frank", member2="Dean", member3="Sammy")
8+
print_three_members(member1="Frank", member3="Dean", member2="Sammy")
9+
10+
# This would be invalid:
11+
# print_three_members("Frank", member3="Dean", member2="Sammy")
12+
# print_three_members("Frank", "Dean", "Sammy")
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def print_three_members(member1, member2, member3, /):
2+
print(f"member1 is {member1}")
3+
print(f"member2 is {member2}")
4+
print(f"member3 is {member3}")
5+
6+
7+
print_three_members("Frank", "Dean", "Sammy")
8+
9+
# This would be invalid:
10+
# print_three_members(member1="Frank", member2="Sammy", member3="Dean")
11+
# print_three_members("Frank", "Dean", member3="Sammy")
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def print_varying_members(member1, member2, *args, member3):
2+
print(f"member1 is {member1}")
3+
print(f"member2 is {member2}")
4+
print(f"member3 is {member3}")
5+
print(f"*args contains {args}")
6+
7+
8+
print_varying_members("Frank", member2="Dean", member3="Sammy")
9+
print_varying_members(member1="Frank", member2="Dean", member3="Sammy")
10+
print_varying_members("Frank", "Dean", "Peter", "Joey", member3="Sammy")
11+
12+
# This would be invalid:
13+
# print_varying_members(member1="Frank", "Dean", member3="Sammy")
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def slash_usage(position_only, /, either):
2+
print(position_only, either)
3+
4+
5+
slash_usage("Frank", either="Dean")
6+
slash_usage("Frank", "Dean")
7+
8+
# This would be invalid:
9+
# slash_usage(position_only="Frank", either="Dean")
10+
# slash_usage(position_only="Frank", "Dean")
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def username(fn, ln, /):
2+
return ln + fn[0]
3+
4+
5+
print(username("Frank", "Sinatra"))
6+
7+
# This would be invalid:
8+
# print(username(fn="Frank", ln="Sinatra"))

0 commit comments

Comments
 (0)