Python Functions
Introduction to Functions
Functions encapsulate reusable logic. Use def to declare a function, grouping statements under a name:
def greet(name):
print(f"Hello, {name}!")
# Calling the function
greet("Alice") # Hello, Alice!
Docstrings
Document your functions using triple-quoted strings immediately after the def line:
def add(a, b):
"""Return the sum of a and b.
Args:
a (int): First number.
b (int): Second number.
Returns:
int: Sum of a and b.
"""
return a + b
Parameters & Arguments
Functions support:
- Positional arguments
- Default values:
def fn(x, y=0) - Keyword-only args:
def fn(*, flag=True) - Arbitrary args:
*argsand**kwargs
def combo(*args, **kwargs):
print(args, kwargs)
combo(1,2, a=3, b=4)
Lambda Expressions
Anonymous functions using lambda for simple operations:
square = lambda x: x * x print(square(5)) # 25
Decorators
Modify or wrap functions using decorators:
def timer(fn):
import time
def wrapper(*args, **kw):
start = time.time()
result = fn(*args, **kw)
print(f"Elapsed: {time.time()-start:.4f}s")
return result
return wrapper
@timer
def compute(n):
return sum(range(n))
compute(1000000)
Closures
Inner functions capturing outer scope variables:
def make_multiplier(m):
def multiply(x):
return x * m
return multiply
double = make_multiplier(2)
print(double(5)) # 10