একটি ফাংশন লজিক প্যাকেজ করে যাতে সেটা নাম দিয়ে পুনঃব্যবহার করা যায় — প্রোগ্রামিং পরিচিতি-তে শেখা একই ধারণা, Python-এ def কীওয়ার্ড দিয়ে সংজ্ঞায়িত।
def greet(name):
return f"Hello, {name}!"
print(greet("Priya")) # "Hello, Priya!"def greet(name="Guest"):
return f"Hello, {name}!"
print(greet()) # "Hello, Guest!"
print(greet("Amit")) # "Hello, Amit!"Python আপনাকে ঐচ্ছিকভাবে প্যারামিটার আর রিটার্ন টাইপ annotate করতে দেয় — PHP-এর টাইপ ডিক্লারেশন থেকে আলাদা, এগুলো রানটাইমে প্রয়োগ করা হয় না; এগুলো ডকুমেন্টেশন আর টুলিং সাপোর্ট (আপনার এডিটর একটি অমিল ধরতে পারে), PHP-এর function add(int $a, int $b): int-এর মতো একটি কঠোর নিয়ম নয়:
def add(a: int, b: int) -> int:
return a + b
print(add(2, 3)) # 5
print(add("2", "3")) # "23" — no error! type hints don't stop this at runtimeএকটি Python ফাংশন সরাসরি একাধিক মান রিটার্ন করতে পারে, কমা দিয়ে আলাদা করে — ভেতরে, এটি আসলে একটি tuple রিটার্ন করছে (Tuples and Sets পাঠ থেকে):
def min_max(numbers):
return min(numbers), max(numbers)
low, high = min_max([4, 9, 1, 7])
print(low, high) # 1 9এগুলো একটি ফাংশনকে যেকোনো সংখ্যক আর্গুমেন্ট গ্রহণ করতে দেয় — *args অতিরিক্ত positional আর্গুমেন্ট একটি tuple-এ জড়ো করে, **kwargs অতিরিক্ত named আর্গুমেন্ট একটি dict-এ জড়ো করে:
def total(*numbers):
return sum(numbers)
print(total(1, 2, 3)) # 6
print(total(1, 2, 3, 4, 5)) # 15 — works with any number of arguments
def describe(**details):
for key, value in details.items():
print(f"{key}: {value}")
describe(name="Priya", course="Web Development")