পাইথনে রেফারেন্স বনাম ভ্যালু দ্বারা পাস করুন

Pass Reference Vs



পাইথন জানার পর, আপনি এমন দৃষ্টান্ত খুঁজে পেতে পারেন যেখানে ফাংশনগুলি আপনার প্রত্যাশা অনুযায়ী আর্গুমেন্টগুলিকে পরিবর্তন করে না, বিশেষ করে যদি আপনি অন্যান্য অনেক কম্পিউটার ভাষার সাথে পরিচিত হন। অনেক ভাষা রেফারেন্স হিসাবে পদ্ধতি আর্গুমেন্ট ব্যবহার করে, বর্তমান ভেরিয়েবলের রেফারেন্স দ্বারা পাস হিসাবে সংজ্ঞায়িত। আপনি যদি একজন অগ্রণী পাইথন ডেভেলপার যিনি পাইথনের পদ্ধতিগত আর্গুমেন্টের চিকিৎসার বিশেষ পদ্ধতিটি বুঝতে চান, তাহলে এই নির্দেশিকাটি সত্যিই আপনার জন্য।

পাইথন অবজেক্ট রেফারেন্স দ্বারা পাস সমর্থন করে

পাস-বাই-রেফারেন্স এবং পাস-বাই-ভ্যালু নিenসন্দেহে প্রোগ্রামিং ভাষার মধ্যে পাসিং প্যারামিটারের দুটি সর্বাধিক স্বীকৃত এবং সহজেই বোধগম্য উপায়। পাইথন, দুlyখজনকভাবে, 'পাস-বাই-অবজেক্ট-রেফারেন্স,' না পাস বাই ভ্যালু বা পাস বাই রেফারেন্স, যাকে প্রায়ই কল বাই অবজেক্ট রেফারেন্স এবং কল করে শেয়ারিং বলা হয়। আপনি রেফারেন্স দ্বারা পাস করার প্রযুক্তিগত বৈশিষ্ট্যগুলিতে ডুবে যাওয়ার সময় এটিকে বিভাগগুলিতে বিভক্ত করে ধারণাটিকে আরও ঘনিষ্ঠভাবে দেখতে দরকারী:







পাস: এর অর্থ একটি যুক্তি দিয়ে একটি পদ্ধতি সরবরাহ করা।



তথ্য অনুসারে: এর মানে হল যে পদ্ধতিতে আপনি যে যুক্তিটি নিয়ে যাচ্ছেন তা একটি পরিবর্তনশীলকে বোঝায় যা এখন সেই ভেরিয়েবলের একটি ভিন্ন প্রতিরূপের পরিবর্তে স্টোরেজে থাকে।



আপনি পদ্ধতিটি একটি সংজ্ঞায়িত ভেরিয়েবলের একটি রেফারেন্স বরাদ্দ করার সাথে সাথে, যে ভেরিয়েবলটি তার সাথে সম্পর্কিত তা এই রেফারেন্সের সমস্ত ক্রিয়াকলাপ দ্বারা স্পষ্টভাবে প্রভাবিত হবে। এখন আসুন কিভাবে অনুশীলনে এটি কাজ করে তার একটি উদাহরণ বিবেচনা করি। এই উদাহরণে, আমরা একটি পরিবর্তনশীল সংজ্ঞায়িত করেছি ' রাগী ' একটি মান আছে 4 । এই দৃশ্যকল্প জুড়ে, পরিবর্তনশীল ' রাগী ' তার জায়গায় পরিবর্তন করা হয়নি। পাইথন একটি স্বয়ংসম্পূর্ণ মান হিসাবে একটি বর্তমান পরিবর্তনশীল একটি রেফারেন্সের পরিবর্তে আপনার প্রদত্ত যুক্তি পরিচালনা করে বলে মনে হয়।





এর মানে কি রেফারেন্সের পরিবর্তে, পাইথন মান দ্বারা আর্গুমেন্টগুলি সরায়? পাইথন অ্যাসাইনমেন্টের মাধ্যমে আর্গুমেন্টগুলি সরায়, তাই রেফারেন্স দ্বারা বা মান দিয়ে নয়। এর জন্য যুক্তি দ্বিগুণ:



বর্তমানে, প্রবেশ করা প্যারামিটারটি একটি বস্তুর পয়েন্টার। কিছু ধরণের ডেটা পরিবর্তনযোগ্য, এবং কিছু পরিবর্তনযোগ্য নয়।

যদি আমরা একটি পরিবর্তনযোগ্য বস্তুকে একটি ফাংশনে স্থানান্তর করি, ফাংশনটি একই বস্তুর একটি রেফারেন্স অর্জন করে যাতে আপনি আপনার আত্মার সন্তুষ্টির জন্য এটি সমস্ত পরিবর্তন করতে পারেন; যাইহোক, ফাংশনে রেফারেন্সে পুনরায় যোগ দেওয়ার আগে বাহ্যিক সুযোগ কিছুই জানবে না। একবার আপনি শেষ হয়ে গেলে, বাহ্যিক রেফারেন্স শুধুমাত্র প্রকৃত বস্তুকে লক্ষ্য করবে। আপনি যদি কোন ফাংশনে অপরিবর্তনীয় বস্তু স্থানান্তর করেন, তাহলে বাহ্যিক রেফারেন্স সবসময় পুনরায় বন্ধন করা যাবে না এবং আপনি কেবল বস্তুটি পরিবর্তন করতে পারবেন না। জিনিসগুলিকে আরও সহজবোধ্য করতে, আসুন একে একে বুঝতে পারি।

রেফারেন্স দ্বারা পাস

প্রথমত, আপনাকে বুঝতে হবে যে ভেরিয়েবল 'মাইলিস্ট' নিজেই একটি তালিকা নয় কিন্তু মানসম্পন্ন একটি তালিকা বোঝায়। আপনি ভেরিয়েবলকে 'মাইলিস্ট' বলতে পারেন যার ভিতরে মান রয়েছে। তালিকার মান বস্তু। 'মাইলিস্ট' ভেরিয়েবলটি সরাসরি তার বিষয়বস্তু সহ ফাংশনে বিতরণ করা হয়েছে।

উভয় তালিকা এবং আমার তালিকা নীচের কোড উদাহরণে একই স্টোরেজ ভেরিয়েবল বলে মনে হয় এবং এইভাবে একই স্টোরেজ অবজেক্টে প্রযোজ্য। এজন্য আউটপুটে, এটি 'সা Saeedদ' প্রিন্ট করে।

ভেরিয়েবল বা সত্তায় করা যেকোনো কাজ অবিলম্বে কলার পদ্ধতিতে প্রতিফলিত হবে। পদ্ধতিটি ভেরিয়েবলের মান সম্পূর্ণরূপে পরিবর্তন করতে পারে এবং এটিকে সম্পূর্ণ স্বতন্ত্র বস্তুর দিকে লক্ষ্য করতে পারে। আপনি যেমন 'set_list' ফাংশনে দেখতে পাচ্ছেন, আমরা তালিকার বিষয়বস্তু পরিবর্তন করেছি এবং 'আকসা' উপাদান সম্বলিত একটি সম্পূর্ণ নতুন তালিকা মুদ্রণ করেছি, কারণ আমরা পরিবর্তিত তালিকাটি ফেরত দিয়েছি এবং কলকারীর একই লাইনে এটি মুদ্রণ করেছি।

পদ্ধতিটি নীচের মতো একই ফলাফলের জন্য ভেরিয়েবলের উপাদানগুলিকে পুনরায় বরাদ্দ করতে পারে। আপনি দেখতে পারেন যে আমরা তালিকায় একটি নতুন মান যুক্ত করেছি এবং পরিবর্তনটি প্রতিফলিত হয়েছে। আমরা একটি তালিকাতে একটি অনন্য স্ট্রিং যুক্ত করেছি এবং কলকারীর কাছে এটি ফেরত দিয়েছি। উপসংহারে, পদ্ধতি এবং কলকারী পাস-বাই সম্পর্ক জুড়ে একই পরিবর্তনশীল এবং বস্তু ব্যবহার করে আসছে।

মূল্য দ্বারা পাস

পাস বাই ভ্যালু মাধ্যমে, পদ্ধতিটি আর্গুমেন্ট অবজেক্টের ডুপ্লিকেট দিয়ে সরবরাহ করা হয় যা কলার এটিকে বরাদ্দ করে। এটি নিশ্চিত করে যে আসল আইটেমটি অপরিবর্তিত রয়েছে এবং সমস্ত পরিবর্তন একই বস্তুর প্রতিরূপে পৃথক মেমরি অবস্থানে রাখা হয়েছে।

পদ্ধতি দ্বারা একটি ভেরিয়েবল বা সত্তার উপর চালিত যেকোনো ক্রিয়াকলাপের সাথে এটি সমানভাবে বৈধ। কলার পদ্ধতির সুযোগের মধ্যে ভেরিয়েবল এবং বস্তুর সদৃশগুলি সংক্ষিপ্ত করার জন্য সম্পূর্ণ আলাদা করা হয়েছে।

রেফারেন্স দ্বারা বস্তু পাস

এই পরিস্থিতি জুড়ে, যেহেতু পাইথনটি আলাদা, পাইথনের পদ্ধতিগুলি স্টোরেজে খুব অনুরূপ বস্তুর রেফারেন্স পায় যেমন কলকারী উল্লেখ করে। বিপরীতভাবে, কৌশলটি ভেরিয়েবল 'মাইলিস্ট' (ধারক) পায় না। কলার পদ্ধতি একই বস্তু সংরক্ষণ করে; পদ্ধতিটি একজনের ধারক তৈরি করে এবং তার নিজের জন্য সম্পূর্ণ তাজা সূচক তৈরি করে, যেমন পাস-বাই-ভ্যালু।

কলার এবং পদ্ধতি স্টোরেজে একই বস্তুর কথা বলে, কিন্তু যখন সংযুক্ত পদ্ধতি একটি তালিকাতে একটি বাহ্যিক আইটেম প্রয়োগ করে, তখন কলার সত্তা পরিবর্তন করা হয়। তাদের একাধিক লেবেল আছে, কিন্তু তারা একই জিনিস। উভয় ভেরিয়েবল একটি খুব অনুরূপ বস্তু ধারণ করে। বস্তুর দ্বারা চলাচলের সাথে এর সম্পর্ক পিছনের অনুভূতি। স্টোরেজে, পদ্ধতি এবং কলার একটি অনুরূপ বস্তু ব্যবহার করে কিন্তু একাধিক ভেরিয়েবলের মাধ্যমে তাদের ধরতে পারে। পদ্ধতি পরিবর্তনশীল (ধারক) এ করা কোন পরিবর্তন দ্বারা কলার ভেরিয়েবল (ধারক) পরিবর্তন করা হবে না; শুধুমাত্র তথ্য বা বিষয়বস্তু পরিবর্তন করা হয়।

উপসংহার

পাইথন ভাষাগুলি থেকে স্বাধীনভাবে কাজ করে যা রেফারেন্স বা আর্গুমেন্টের মান দ্বারা চলতে গ্রহণ করে। মেথড আর্গুমেন্ট হল স্থানীয় ভেরিয়েবল যা পদ্ধতিতে স্থানান্তরিত প্রতিটি মানকে বরাদ্দ করা হয়েছে। কিন্তু এটি এখনও আপনাকে একই ফলাফল পেতে বাধা দেয় না যা আপনি প্রক্সি দ্বারা যুক্তিগুলি সরানোর সময় অন্যান্য ভাষায় পাবেন।