আপনি যদি সি / জাভা / ইত্যাদির কোনও ভাষা থেকে পাইথনে আসছেন। পরিবার, এটি আপনাকে a"ভেরিয়েবল" হিসাবে চিন্তাভাবনা বন্ধ করতে এবং এটি একটি "নাম" হিসাবে ভাবতে শুরু করতে সহায়তা করতে পারে ।
a, bএবং cসমান মান সহ বিভিন্ন ভেরিয়েবল নয়; তারা একই অভিন্ন মানের জন্য বিভিন্ন নাম। চলকগুলির মধ্যে প্রকার, পরিচয়, ঠিকানা এবং সমস্ত ধরণের স্টাফ রয়েছে।
নামগুলির মধ্যে একটিও নেই। মানগুলি অবশ্যই করে এবং আপনার একই মানের জন্য প্রচুর নাম থাকতে পারে।
আপনি যদি Notorious B.I.G.একটি গরম কুকুর দেন, * Biggie Smallsএবং Chris Wallaceএকটি গরম কুকুর আছে। আপনি প্রথম উপাদান পরিবর্তন করেন তাহলে a1 থেকে, প্রথম উপাদান bএবং c1 হয়।
যদি আপনি জানতে চান যে দুটি নাম একই জিনিসটির নামকরণ করছে কিনা, isঅপারেটরটি ব্যবহার করুন :
>>> a=b=c=[0,3,5]
>>> a is b
True
আপনি তারপর জিজ্ঞাসা:
এর থেকে আলাদা কী?
d=e=f=3
e=4
print('f:',f)
print('e:',e)
এখানে, আপনি নাম rebinding করছি eমান 4। এটি নামগুলিকে dএবং কোনওভাবে প্রভাবিত করে না f।
আপনার পূর্ববর্তী সংস্করণে, আপনি বরাদ্দ করেছিলেন a[0], না a। সুতরাং, দৃষ্টিকোণ থেকে a[0], আপনি রিমন্ডিং করছি a[0], কিন্তু দৃষ্টিকোণ থেকে a, আপনি এটি জায়গায় জায়গায় পরিবর্তন করছেন।
আপনি কোনও idফাংশনটি ব্যবহার করতে পারেন , যা আপনাকে কোনও অবজেক্টের পরিচয় উপস্থাপনের জন্য কিছু অনন্য নম্বর দেয়, ঠিক কোন বস্তুটি কোনটি যা isসহায়তা করতে পারে না তা দেখার জন্য:
>>> a=b=c=[0,3,5]
>>> id(a)
4473392520
>>> id(b)
4473392520
>>> id(a[0])
4297261120
>>> id(b[0])
4297261120
>>> a[0] = 1
>>> id(a)
4473392520
>>> id(b)
4473392520
>>> id(a[0])
4297261216
>>> id(b[0])
4297261216
লক্ষ্য করুন যে a[0]4297261120 থেকে 4297261216 এ পরিবর্তিত হয়েছে - এটি এখন ভিন্ন মানের একটি নাম। এবং b[0]এখন একই নতুন মান জন্য একটি নাম। এটি কারণ aএবং bএখনও একই জিনিসটির নামকরণ করা হচ্ছে।
কভারগুলির নীচে, a[0]=1আসলে তালিকার অবজেক্টে একটি পদ্ধতি কল করে। (এটি এর সমতুল্য a.__setitem__(0, 1)।) সুতরাং, এটি আসলে কিছুতেই রিব্যান্ডিং নয়। এটি কল করার মতো my_object.set_something(1)। অবশ্যই, সম্ভবত এই পদ্ধতিটি বাস্তবায়নের জন্য বস্তুটি কোনও উদাহরণের বৈশিষ্ট্যটি রিমান্ড করছে, তবে এটি গুরুত্বপূর্ণ নয়; গুরুত্বপূর্ণটি হ'ল আপনি কোনও কিছু বরাদ্দ দিচ্ছেন না, আপনি কেবলমাত্র বস্তুকে পরিবর্তন করছেন। এবং এটি একই a[0]=1।
user570826 জিজ্ঞাসা করেছে:
আমাদের যদি হয়, a = b = c = 10
ঠিক ঠিক একই অবস্থা a = b = c = [1, 2, 3]: আপনার একই মানের তিনটি নাম রয়েছে।
তবে এই ক্ষেত্রে মানটি একটি intএবং intঅপরিবর্তনীয়। উভয় ক্ষেত্রেই, আপনি aআলাদা মানটিতে (যেমন, a = "Now I'm a string!") ফেরত দিতে পারেন , তবে এটি মূল মানটিকে প্রভাবিত করবে না, যা এর জন্য bএবং cএখনও এর নাম থাকবে। পার্থক্য হচ্ছে একটি তালিকা সঙ্গে, আপনি মান পরিবর্তন করতে পারেন [1, 2, 3]মধ্যে [1, 2, 3, 4]করে, যেমন, a.append(4); যেহেতু যে আসলে মান পরিবর্তন bএবং cজন্য নাম হয়, bএখন b হবে [1, 2, 3, 4]। 10আর কোনও কিছুতে মান পরিবর্তন করার কোনও উপায় নেই। 10চিরদিনের জন্য 10, ক্লোদিয়ার মতো ভ্যাম্পায়ার চিরকাল 5 টি (অন্তত তিনি কিরস্টন ডানস্টের পরিবর্তে)।
* সতর্কতা: কুখ্যাত বিগকে কোনও গরম কুকুর দেবেন না। গ্যাংস্টা র্যাপ জম্বিগুলি কখনই মধ্যরাতের পরে খাওয়ানো উচিত নয়।
a,bএবং,c,একই মান সব পয়েন্ট (এই ক্ষেত্রে একটি তালিকা), অথবা চাওa=0,b=3এবং,c=5। সেক্ষেত্রে, আপনি চানa,b,c = [0,3,5]বা শুধুa,b,c = 0,3,5।