কম্পিউটার

পাইথনে রেফারেন্স বনাম মান পাস করুন


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

উদাহরণ

#!/usr/bin/python
# Function definition is here
def changeme( mylist ):
"This changes a passed list into this function"
mylist.append([1,2,3,4]);
print "Values inside the function: ", mylist
return
# Now you can call changeme function
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
# Function definition is here
def changeme( mylist ):
"This changes a passed list into this function"
mylist = [1,2,3,4]; # This would assig new reference in mylist
print "Values inside the function: ", mylist
return
# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

আউটপুট

প্যারামিটার mylist ফাংশন changeme স্থানীয় হয়. ফাংশনের মধ্যে মাইলিস্ট পরিবর্তন করা মাইলিস্টকে প্রভাবিত করে না। ফাংশনটি কিছুই সম্পাদন করে না এবং অবশেষে এটি নিম্নলিখিত ফলাফল তৈরি করবে -

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

  1. পাইথনে issubset() ফাংশন

  2. ইন্টারসেকশন() ফাংশন পাইথন

  3. পাইথন ফাংশনে যুক্তি হিসাবে একটি অভিধান কীভাবে পাস করবেন?

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