Functions & Classes
Defining Functions
3 min read
Functions are reusable blocks of code. In AI development, you'll create functions for prompt formatting, API calls, response processing, and more.
Basic Function Syntax
def greet(name):
"""Return a greeting message."""
return f"Hello, {name}!"
# Calling the function
message = greet("Claude") # "Hello, Claude!"
Parameters and Arguments
# Required parameters
def chat(message, model):
return f"[{model}]: {message}"
# Default parameters
def chat(message, model="gpt-4"):
return f"[{model}]: {message}"
chat("Hi") # Uses default model
chat("Hi", model="claude") # Override default
*args and **kwargs
These allow flexible argument handling:
# *args: Accept any number of positional arguments
def sum_all(*numbers):
return sum(numbers)
sum_all(1, 2, 3) # 6
sum_all(1, 2, 3, 4, 5) # 15
# **kwargs: Accept any number of keyword arguments
def create_message(**kwargs):
return kwargs
create_message(role="user", content="Hi")
# {'role': 'user', 'content': 'Hi'}
# Combining both
def api_call(endpoint, *args, **kwargs):
print(f"Calling {endpoint}")
print(f"Args: {args}")
print(f"Kwargs: {kwargs}")
Practical AI Example
def format_messages(system_prompt, *user_messages):
"""Format messages for chat API."""
messages = [{"role": "system", "content": system_prompt}]
for msg in user_messages:
messages.append({"role": "user", "content": msg})
return messages
# Usage
messages = format_messages(
"You are a helpful assistant.",
"Hello!",
"What can you do?"
)
Return Values
# Return single value
def get_model():
return "gpt-4"
# Return multiple values (as tuple)
def get_config():
return "gpt-4", 0.7, 1000 # model, temp, max_tokens
model, temp, tokens = get_config()
# Return None implicitly
def log(message):
print(message)
# No return statement = returns None
Lambda Functions
Short anonymous functions for simple operations:
# Regular function
def double(x):
return x * 2
# Lambda equivalent
double = lambda x: x * 2
# Common use: sorting
models = [("gpt-4", 0.03), ("gpt-3.5", 0.002)]
sorted_by_price = sorted(models, key=lambda m: m[1])
Next, we'll learn about classes and object-oriented programming. :::