Is Python pass-by-value or pass-by-reference?
➡️ Actually, Python uses Pass by Object Reference.
That means:
The function receives a reference to the same object.
📌 Example: Mutable Object
def modify(lst):
lst.append(4)
nums = [1, 2, 3]
modify(nums)
print(nums)
Output:
[1, 2, 3, 4]
👉 The original list changed
Because the function received a reference
to the SAME object in memory.
📌 Example: Immutable Object
def modify(x):
x = x + 1
print("Inside:", x)
num = 10
modify(num)
print("Outside:", num)
Output:
Inside: 11
Outside: 10
👉 Integer did not change
Because integers are immutable
Reassignment creates a new object.
🎯 Core Idea
• Functions receive object references
• Mutable objects can be modified
• Immutable objects create new objects
• Python is NOT pure pass-by-value
• Python is NOT pure pass-by-reference
✅ It is Pass by Object Reference.
