প্রোগ্রামিং-এ, অপারেটর হল একটি চিহ্ন (কী) যা একটি নির্দিষ্ট ক্রিয়াকলাপ যেমন যোগ, বিয়োগ, তুলনা ইত্যাদি করার জন্য পূর্বনির্ধারিত। বিভাগ যেমন পাটিগণিত, তুলনা, বিট-ওয়াইজ, সদস্যপদ ইত্যাদি।
পাইথন লাইব্রেরির অপারেটর মডিউলটি অন্তর্নির্মিত অপারেটরগুলির সাথে সম্পর্কিত ফাংশন নিয়ে গঠিত। ফাংশনগুলির নামগুলি সংশ্লিষ্ট অপারেটরের প্রকারের সাথে সাদৃশ্যপূর্ণ। উদাহরণস্বরূপ, অপারেটর মডিউলে add() ফাংশন + অপারেটরের সাথে মিলে যায়।
পাইথনের অবজেক্ট ক্লাসে অপারেটর চিহ্নগুলির সাথে সম্পর্কিত ডান্ডার (নামের আগে এবং পরে ডবল আন্ডারস্কোর) পদ্ধতি রয়েছে। অপারেটর ওভারলোডিং বাস্তবায়নের জন্য এই ডান্ডার পদ্ধতিগুলি ব্যবহারকারীর সংজ্ঞায়িত ক্লাসে উপযুক্তভাবে ওভারলোড করা যেতে পারে। অপারেটর মডিউলটি সংশ্লিষ্ট ডন্ডার ফাংশন নিয়ে গঠিত। উদাহরণ স্বরূপ, add() এর পাশাপাশি __add__() উভয়ই + চিহ্নের অপারেশন বাস্তবায়ন করে।
শুরু করতে চলুন অপারেটর মডিউল থেকে ফাংশন ইম্পোর্ট করি
>>> from operator import *
পাটিগণিত অপারেটরের সাথে সম্পর্কিত ফাংশন সম্পর্কে জানতে, দুটি ভেরিয়েবলকে সূচনা করা হয়
>>> a = 10 >>> b = 20
add(), sub() এবং mul() +, - এবং * অপারেটরদের সাথে মিলে যায়। বিভাজনের / প্রতীক truediv() ফাংশন দ্বারা প্রয়োগ করা হয়।
>>> add(a,b) 30 >>> a + b 30 >>> sub(a,b) -10 >>> a - b -10 >>> mul(a,b) 200 >>> a * b 200 >>> truediv(a,b) 0.5 >>> a / b 0.5
অন্যান্য গাণিতিক অপারেটর %, ** এবং // অপারেটর মডিউল থেকে mod(), pow() এবং floordiv() ফাংশন দ্বারা প্রয়োগ করা হয়।
>>> a = 5 >>> b = 3 >>> a % b 2 >>> mod(a,b) 2 >>> a ** b 125 >>> pow(a,b) 125 >>> a // 2 2 >>> floordiv(a,b)
লজিক্যাল অপারেটর <, <=,>,>=, ==এবং !=lt(), le(), gt(), ge(), eq() এবং ne() দ্বারা প্রয়োগ করা হয় যথাক্রমে ফাংশন।
>>> a = 5 >>> b = 7 >>> a < b True >>> lt(a,b) True >>> a <= b True >>> le(a,b) True >>> a > b False >>> gt(a,b) False >>> a >= b False >>> ge(a,b) False >>> a == b False >>> eq(a,b) False >>> a != b True >>> ne(a,b) True
অনুক্রমের সাথে কাজ করা ফাংশনগুলি
পাইথনের অন্তর্নির্মিত অপারেটর, + (সংযুক্তকরণ), এবং del যথাক্রমে contains(), concat(), delitem() ফাংশন দ্বারা প্রয়োগ করা হয়। ইন্ডেক্সড অ্যাসাইনমেন্ট অপারেটরের জন্য seq[x] =y, setitem() ফাংশন ব্যবহার করা হয়। seq[x] এর মান পাওয়ার জন্য, getitem() ফাংশন ব্যবহার করা হয়।
>>> a = [1,2,3] >>> b = ['a','b','c'] >>> a + b #sequence concatenation [1, 2, 3, 'a', 'b', 'c'] >>> concat(a,b) [1, 2, 3, 'a', 'b', 'c'] >>> contains(a,'2') #implements in operator False >>> contains(a,2) True >>> 2 in a True >>> b[1] = 'x' #index assignment implemented by setitem() >>> b ['a', 'x', 'c'] >>> setitem(b,1,'b') >>> b ['a', 'b', 'c'] >>> a[1] #fetching value at index – implemented by getitem() 2 >>> getitem(a,1) 2 >>> del b[2] #deleting element at index. Corresponding function is delitem() >>> b ['a', 'b'] >>> delitem(a,2) >>> a [1, 2]
যে অপারেটরগুলি একক ধাপে অ্যাসাইনমেন্ট এবং গণনা সম্পাদন করে তাদের ইন-প্লেস অপারেটর বলা হয়। পাইথনের ইন-প্লেস অপারেটরগুলি অপারেটর মডিউলে সংশ্লিষ্ট ফাংশন দ্বারা প্রয়োগ করা হয়। +=অপারেটর যেটি অ্যাড এবং অ্যাসাইন অপারেশন সম্পাদন করে তার সাথে সংশ্লিষ্ট iadd() ফাংশন রয়েছে। একইভাবে 'i' দ্বারা উপসর্গযুক্ত প্রতিটি অপারেটর ফাংশন ইন-প্লেস সমতুল্য গঠন করে।
অভ্যন্তরীণ সংযোজন
>>> a = 10 >>> b = 20 >>> a = iadd(a,b) #equivalent to a += b >>> a 30
অভ্যন্তরীণ বিয়োগ
>>> a = 10 >>> b = 20 >>> a = isub(a,b) #equivalent to a -= b >>> a -10
স্থানে গুণন
>>> a= 10 >>> b = 20 >>> a = imul(a,b) #equivalent to a *= b >>> a 200
স্থানে বিভাজন
>>> a = 10 >>> b = 4 >>> a = itruediv(a,b) >>> a 2.5
অপারেটর মডিউলটি স্ট্যান্ডার্ড বিট-ওয়াইজ অপারেটরগুলিকে কার্যকর করার ফাংশনগুলি নিয়ে গঠিত
>>> and_(10,2) #equivalent to 10 & 2 2 >>> or_(10,2) #equivalent to 10 | 2 10 >>> xor(10,2) #equivalent to 10 ^ 2 8 >>> lshift(10,2) #equivalent to 10 << 2 40 >>> rshift(10,2) #equivalent to 10 >> 2 2