Positional-Only Arguments in Python

Positional-Only Arguments in Python

Positional-only arguments are function parameters that must be passed by position (order) and cannot be passed by keyword name.

Syntax

Use the / symbol in the function definition to indicate that all parameters before it are positional-only:

python

def function_name(param1, param2, /, param3, param4):
    # function body

Simple Examples

Example 1: Basic Positional-Only Arguments

python

def calculate_area(length, width, /):
    area = length * width
    print(f"Area: {area} square units")

# These work (positional arguments):
calculate_area(5, 3)    # Output: Area: 15 square units
calculate_area(10, 2)   # Output: Area: 20 square units

# This will cause an ERROR (keyword arguments not allowed):
# calculate_area(length=5, width=3)

Example 2: Mixing Positional-Only and Regular Arguments

python

def create_person(name, age, /, country):
    print(f"Name: {name}, Age: {age}, Country: {country}")

# Valid calls:
create_person("Alice", 25, "USA")          # Positional for all
create_person("Bob", 30, country="Canada") # Positional for first two, keyword for last

# Invalid calls:
# create_person(name="Charlie", age=35, country="UK")  # ERROR: name and age are positional-only

Example 3: Practical Example – Math Operations

python

def power(base, exponent, /):
    result = base ** exponent
    print(f"{base} to the power of {exponent} = {result}")

power(2, 3)     # Output: 2 to the power of 3 = 8
power(5, 2)     # Output: 5 to the power of 2 = 25

# This would cause an error:
# power(base=2, exponent=3)

Example 4: With Default Arguments

python

def greet(name, /, message="Hello"):
    print(f"{message}, {name}!")

# Valid calls:
greet("John")                   # Output: Hello, John!
greet("Sarah", "Hi")            # Output: Hi, Sarah!
greet("Mike", message="Hey")    # Output: Hey, Mike!

# Invalid call:
# greet(name="Emma")  # ERROR: name is positional-only

Real-World Use Cases

Example 5: File Processing

python

def process_file(file_path, /, mode="read"):
    print(f"Processing {file_path} in {mode} mode")

process_file("data.txt")                # Output: Processing data.txt in read mode
process_file("image.jpg", "write")      # Output: Processing image.jpg in write mode

# This would be invalid:
# process_file(file_path="document.pdf")

Example 6: Coordinate System

python

def plot_point(x, y, /, color="black", size=1):
    print(f"Point at ({x}, {y}) with {color} color and size {size}")

plot_point(10, 20)                      # Output: Point at (10, 20) with black color and size 1
plot_point(5, 15, "red", 2)             # Output: Point at (5, 15) with red color and size 2
plot_point(3, 7, color="blue", size=3)  # Output: Point at (3, 7) with blue color and size 3

# Invalid:
# plot_point(x=1, y=2)

Key Points to Remember

  1. Positional-only arguments must come before theΒ /
  2. They cannot be passed using keyword syntax
  3. They make function APIs more strict and predictable
  4. Useful when parameter names might change in the future
  5. Helps prevent users from relying on specific parameter names

When to Use Positional-Only Arguments

  • When parameter names are not descriptive or might change
  • For mathematical functions where order matters (like coordinates)
  • When you want to enforce a specific calling convention
  • For internal functions where you want to prevent keyword usage

Positional-only arguments give you more control over how your functions are called!

Similar Posts

  • install Python, idle, Install pycharm

    Step 1: Download Python Step 2: Install Python Windows macOS Linux (Debian/Ubuntu) Open Terminal and run: bash Copy Download sudo apt update && sudo apt install python3 python3-pip For Fedora/CentOS: bash Copy Download sudo dnf install python3 python3-pip Step 3: Verify Installation Open Command Prompt (Windows) or Terminal (macOS/Linux) and run: bash Copy Download python3 –version # Should show…

  • Variable Length Positional Arguments in Python

    Variable Length Positional Arguments in Python Variable length positional arguments allow a function to accept any number of positional arguments. This is done using the *args syntax. Syntax python def function_name(*args): # function body # args becomes a tuple containing all positional arguments Simple Examples Example 1: Basic *args python def print_numbers(*args): print(“Numbers received:”, args) print(“Type of…

  • Class 10 String Comparison ,Bitwise Operators,Chaining Comparisons

    String Comparison with Relational Operators in Python πŸ’¬βš–οΈ In Python, you can compare strings using relational operators (<, <=, >, >=, ==, !=). These comparisons are based on lexicographical (dictionary) order, which uses the Unicode code points of the characters. πŸ“– How String Comparison Works πŸ€” Examples πŸ’‘ Python Important Notes πŸ“Œ String comparison is…

  • Indexing and Slicing in Python Lists Read

    Indexing and Slicing in Python Lists Read Indexing and slicing are fundamental operations to access and extract elements from a list in Python. 1. Indexing (Accessing Single Elements) Example 1: Basic Indexing python fruits = [“apple”, “banana”, “cherry”, “date”, “fig”] # Positive indexing print(fruits[0]) # “apple” (1st element) print(fruits[2]) # “cherry” (3rd element) # Negative indexing print(fruits[-1]) # “fig”…

  • Case Conversion Methods in Python

    Case Conversion Methods in Python (Syntax + Examples) Python provides several built-in string methods to convert text between different cases (uppercase, lowercase, title case, etc.). Below are the key methods with syntax and examples: 1. upper() β€“ Convert to Uppercase Purpose: Converts all characters in a string to uppercase.Syntax: python string.upper() Examples: python text = “Hello, World!”…

  • Python Calendar Module

    Python Calendar Module The calendar module in Python provides functions for working with calendars, including generating calendar data for specific months or years, determining weekdays, and performing various calendar-related operations. Importing the Module python import calendar Key Methods in the Calendar Module 1. calendar.month(year, month, w=2, l=1) Returns a multiline string with a calendar for the specified month….

Leave a Reply

Your email address will not be published. Required fields are marked *