Python ไม่มีการส่งแบบ Pass by Value ในความหมายดั้งเดิม แต่เมื่อส่งออบเจ็กต์ที่ "ไม่เปลี่ยนแปลงได้" (immutable) เช่น integer, string, tuple จะดูเหมือนส่งแบบ value เพราะไม่สามารถแก้ไขค่าเดิมได้
ตัวอย่าง
def modify(x):
x = 30 # ผูกชื่อ x กับออบเจ็กต์ใหม่ ไม่ได้แก้ออบเจ็กต์เดิม
a = [10] # list เป็น mutable
modify(a) # ส่ง list เข้าไป แต่ในฟังก์ชัน reassign x
print("a =", a) # a ยังคงเป็น [10] เพราะ x ถูกผูกใหม่
กรณีนี้ a ไม่เปลี่ยนแปลง เพราะภายในฟังก์ชัน x = 30 สร้างการผูกตัวแปรใหม่ (rebinding) ไม่ได้แก้ไข list เดิม