কম্পিউটার টিউটোরিয়াল

পাইথনে পাস বাই রেফারেন্স বনাম ভ্যালু (Pass by Reference vs Value)

পাইথন ভাষার সব প্যারামিটার (আর্গুমেন্ট) পাস বাই রেফারেন্স। এর মানে ফাংশনের ভিতরে একটি প্যারামিটার যা রেফার করে সেটি পরিবর্তন করলে কলিং ফাংশনটিও প্রতিফলিত হয়।

উদাহরণ

#!/usr/bin/python
def changeme(mylist):
    "This changes a passed list into this function"
    mylist.append([1,2,3,4])
    print "Values inside the function: ", mylist
    return

mylist = [10,20,30]
changeme(mylist)
print "Values outside the function: ", mylist

আউটপুট

এখানে পাস করা অবজেক্টের রেফারেন্স মেইনটেইন করা হচ্ছে এবং একই অবজেক্টে ভ্যালু অ্যাপেন্ড হচ্ছে। ফলাফল:

Values inside the function: [10, 20, 30, [1, 2, 3, 4]]
Values outside the function: [10, 20, 30, [1, 2, 3, 4]]

আরেক উদাহরণ যেখানে আর্গুমেন্ট রেফারেন্স দ্বারা পাস হচ্ছে কিন্তু কলড ফাংশনের ভিতরে রেফারেন্স ওভাররাইট হচ্ছে।

উদাহরণ

#!/usr/bin/python
def changeme(mylist):
    "This changes a passed list into this function"
    mylist = [1,2,3,4]  # এখানে mylist-এ নতুন রেফারেন্স অ্যাসাইন
    print "Values inside the function: ", mylist
    return

mylist = [10,20,30]
changeme(mylist)
print "Values outside the function: ", mylist

আউটপুট

প্যারামিটার mylist changeme ফাংশনের লোকাল। ফাংশনের ভিতরে mylist পরিবর্তন করলে বাইরের mylist-এ প্রভাব পড়ে না। ফাংশনটি কিছুই সম্পন্ন করে না এবং ফলাফল:

Values inside the function: [1, 2, 3, 4]
Values outside the function: [10, 20, 30]
  1. পাইথনে issubset() ফাংশন

  2. পাইথনে intersection() ফাংশন

  3. পাইথন ফাংশনে ডিকশনারি আর্গামেন্ট হিসেবে পাস করা

  4. পাইথন ফাংশন আর্গামেন্ট হিসেবে ফাংশন পাস করা