পাইথন ভাষার সমস্ত প্যারামিটার (আর্গুমেন্ট) রেফারেন্স দ্বারা পাস করা হয়। এর অর্থ হল আপনি যদি একটি ফাংশনের মধ্যে একটি প্যারামিটার যা বোঝায় তা পরিবর্তন করেন, সেই পরিবর্তনটি কলিং ফাংশনেও প্রতিফলিত হয়৷
উদাহরণ
#!/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]