PYTHON Reference Guide
Revision Time: 3 mins

Functions Reference

Scope boundaries, closures, *args, and keyword argument bindings.

*args
Return: None

Allow a function to accept any number of positional arguments.

Used In: Dynamic pipeline logging, wrapping commands.

Syntax signature:def func(*args):
Code snippet:
python
def log_steps(*args):
    for step in args:
        print(step)
log_steps('Extract', 'Transform', 'Load')
Expected Output:Extract Transform Load

Time Complexity: O(1) capture, O(N) access

Related Methods: **kwargs

Comparison:

*args (positional arguments as tuple) vs **kwargs (keyword arguments as dictionary).

Remember: Inside the function, args is captured as a tuple.
**kwargs
Return: None

Allow a function to accept any number of keyword-value arguments.

Used In: Orchestration config initialization, db parameters mapping.

Syntax signature:def func(**kwargs):
Code snippet:
python
def make_config(**kwargs):
    print(kwargs.get('port', 5432))
make_config(host='localhost', port=8000)
Expected Output:8000

Time Complexity: O(1) capture, O(1) lookups

Related Methods: *args

Remember: Captured as a standard dictionary inside the function.
Mutable Default Arguments
Return: List

Demonstrate the mutable default parameters pitfall and show the correct replacement pattern.

Used In: Creating secure, side-effect-free function APIs.

Syntax signature:def func(val, lst=None):
Code snippet:
python
def append_val(val, lst=None):
    if lst is None:
        lst = []
    lst.append(val)
    return lst
print(append_val(1))
Expected Output:[1]

Time Complexity: O(1)

Common Mistakes: Writing def append(val, lst=[]).

Remember: Never use [] or {} in signature defaults; they are evaluated once at load time, causing shared memory leak state across calls.
Keyword-only Arguments
Return: None

Enforce callers to specify parameters by keyword names.

Used In: Enforcing code clarity in production APIs.

Syntax signature:def func(a, *, key_only):
Code snippet:
python
def run_etl(source, *, dry_run=False):
    print(dry_run)
run_etl('db.csv', dry_run=True)
Expected Output:True

Time Complexity: O(1)

Remember: The asterisk (*) acts as a separator parameter; everything after it must be called with a keyword name.
Positional-only Arguments
Return: None

Enforce callers to specify parameters solely by positional sequence.

Used In: Standard library interfaces optimization.

Syntax signature:def func(pos_only, /, other):
Code snippet:
python
def double(x, /):
    return x * 2
print(double(5))
Expected Output:10

Time Complexity: O(1)

Remember: The slash (/) separator ensures all parameters preceding it cannot be specified as keyword arguments.
Variable Unpacking
Return: None

Unpack elements from collections into positional arguments using asterisk.

Used In: Passing dynamically parsed database connection settings.

Syntax signature:func(*list, **dict)
Code snippet:
python
def add(x, y):
    return x + y
params = [10, 20]
print(add(*params))
Expected Output:30

Time Complexity: O(1)

Remember: Use * for list/tuple positional expansions; use ** for dictionary key-value kwargs mappings.
Function Annotations
Return: None

Decorate parameter and return variables with metadata types hints.

Used In: Static check pipelines, IDE autocomplete settings.

Syntax signature:def func(x: int) -> str:
Code snippet:
python
def clean(text: str) -> str:
    return text.strip()
print(clean('  data  '))
Expected Output:'data'

Time Complexity: O(1)

Related Methods: typing module

Remember: Annotations are metadata accessible via __annotations__ attribute; they do not enforce checks at runtime.
Docstrings
Return: None

Document function scope behavior and parameters in standard markdown strings.

Used In: Module level code self-documentation.

Syntax signature:def func(): """Docstring description"""
Code snippet:
python
def process():
    """Cleans data."""
    pass
print(process.__doc__)
Expected Output:'Cleans data.'

Time Complexity: O(1)

Remember: Accessible via help() or __doc__ attribute; crucial for auto-generating project documentations.