1.2.27 · HinglishIntroduction to Programming (Python)

Functions — def, parameters, return, docstrings

1,675 words8 min readRead in English

1.2.27 · Coding › Introduction to Programming (Python)


WHY do functions exist?

Teen kaam jo ek function karta hai:

  1. Abstractionkaise hota hai usse ek naam ke peeche chhupao (area(r) instead of 3.14159*r*r).
  2. Reuse — kahin bhi, kitni bhi baar call karo.
  3. Isolation — iske andar ke variables apne scope mein rehte hain, toh woh baaki program ko pollute nahi karte.

WHAT is the anatomy? (Derivation from scratch)

Chalte hain ek function piece by piece banate hain, har step pe "yeh part kyun?" poochte hue.

Step 1 — def name():

Kyun? Python ko ek marker chahiye taaki woh samjhe "is block ko store karo, abhi run mat karo." def ek function object create karta hai aur usse name se bind karta hai. Define karna ≠ run karna.

def greet():
    print("Hi")

Abhi kuch print nahi hoga. Sirf greet() (parentheses ke saath) usse call karta hai.

Step 2 — parameters (x, y)

Kyun? Bina inputs ke ek machine hamesha same kaam karti hai. Parameters ek definition ko infinitely many inputs ke saath kaam karne dete hain.

def add(a, b):     # a, b PARAMETERS hain (placeholders)
    return a + b
 
add(2, 3)          # 2 aur 3 ARGUMENTS hain (actual values)

Step 3 — return

Kyun? Bina return ke, kaam hota hai lekin jawab shoonya mein ghum jaata hai. return result wapas bhejta hai taaki caller usse use kar sake.

def square(n):
    return n * n
 
y = square(5)      # y ab 25 hai

Step 4 — docstring

Kyun? Chhe mahine baad tum (ya koi teammate) poochte ho "yeh kya karta hai?" Docstring woh documentation hai jo function ke andar rehti hai aur help() se padhi ja sakti hai.

def area(r):
    """Return the area of a circle of radius r."""
    return 3.141592653589793 * r * r

help(area) woh line print karta hai. Yeh def ke neeche pehla string literal hai.

Figure — Functions — def, parameters, return, docstrings

HOW does a call actually work? (Execution trace)


Parameter flavours


return details that bite


Flashcards

Python mein function definition kaunse keyword se shuru hoti hai?
def
Parameter aur argument mein kya fark hai?
Parameter woh placeholder naam hai jo def line mein hota hai; argument woh actual value hai jo call karte waqt pass ki jaati hai.
Agar function mein koi return statement nahi hai toh kya return hoga?
None
print aur return mein kya fark hai?
print screen pe text display karta hai; return caller ko value wapas bhejta hai aage use ke liye.
Docstring kya hoti hai aur kaise likhte hain?
Ek string literal jo function body ke andar pehli line hoti hai, jo document karti hai function kya karta hai; help() se padhi ja sakti hai.
return a, b kya return karta hai?
Ek tuple (a, b).
def f(items=[]) kyun dangerous hai?
Default list ek baar banayi jaati hai aur calls ke beech share hoti hai, toh calls ke beech state accumulate karti rehti hai.
Parameter ko default value kaise dete hain?
def line mein assign karo, jaise def power(base, exp=2):.
return ke baad same path pe likhe code ka kya hota hai?
Woh kabhi execute nahi hota; return function se turant exit karta hai.
Function define karna vs call karna?
def name(): ... sirf function object banata hai; name() parentheses ke saath actually run karta hai.

Recall Feynman: explain to a 12-year-old

Ek function ek vending machine jaisi hoti hai. Tum usse ek baar banate ho aur label lagate ho (def). Tum slot mein coins daalo (the arguments), machine apna hidden kaam kare, aur ek snack bahar aaye (return). Slot ke naam parameters hain. Agar return bhool gaye, toh machine tumhare coins le leti hai aur kuch nahi deti (None). Machine pe woh chhota sticker jo kehta hai "yeh chips deta hai" woh docstring hai. Machine ek baar banao, hazaar baar use karo.

Connections

  • Variables and Scope — parameters aur locals function ke apne scope mein rehte hain.
  • Control Flow — if statements — function bodies ke andar branching returns ke liye use hota hai.
  • Lists and Tuples — multiple values return karne mein tuple packing/unpacking use hoti hai.
  • Recursion — ek function jo khud ko call karta hai, seedha def/return par bana.
  • Lambda and Higher-order Functions — anonymous one-line functions.
  • DRY Principle — functions ka design motivation.

Concept Map

enables

provides

provides

provides

creates

declares

fill

hands value to caller

without return gives

documents

Function

DRY principle

Abstraction

Reuse

Isolation - scope

def keyword

Parameters - slots

Arguments - values

return

docstring

Returns None