প্রোগ্রামিং-এ, অপারেটর সাধারণত একটি সিম্বল (কী) যা একটি নির্দিষ্ট অপারেশন সম্পাদনের জন্য প্রি-ডিফাইন করা থাকে যেমন যোগ, বিয়োগ, তুলনা ইত্যাদি। পাইথনে বিল্ট-ইন অপারেশনların একটি বড় সেট আছে যা বিভিন্ন ক্যাটাগরিতে বিভক্ত যেমন ארিথমেটিক, তুলনা, বিট-ওয়াইজ, মেম্বারশিপ ইত্যাদি।
পাইথন লাইব্রেরির operator মডিউল বিল্ট-ইন অপারেটরদের সাথে মিলে যাওয়া ফাংশনগুলোর samenstellung নিয়ে গঠিত। ফাংশনদের নাম সংশ্লিষ্ট অপারেটরের টাইপের সাথে অনুরূপ। উদাহরণস্বরূপ, operator মডিউলের add() ফাংশন + অপারেটরের সাথে মিলে যায়।
পাইথনের Object ক্লাসে ডান্ডার (নামের আগে এবং পরে ডবল আন্ডারস্কোর) মেথড থাকে যা অপারেটর সিম্বলের সাথে মিলে যায়। এই ডান্ডার মেথডগুলো ইউজার-ডিফাইনড ক্লাসে উপযুক্তভাবে ওভারলোড করা যেতে পারে অপারেটর ওভারলোডিং ইমপ্লিমেন্ট করতে। operator মডিউলেও সংশ্লিষ্ট ডান্ডার ফাংশন থাকে। উদাহরণস্বরূপ, add() এবং __add__() উভয়ই + সিম্বলের অপারেশন ইমপ্লিমেন্ট করে।
শুরু করি operator মডিউল থেকে ফাংশন ইম্পোর্ট করে:
>>> 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
অন্যান্য আর্থমেটিক অপারেটর %, ** এবং // operator মডিউলের 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) 1
লজিক্যাল অপারেটর <, <=, >, >=, == এবং != যথাক্রমে 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
সিকোয়েন্সের সাথে কাজ करने वाले ফাংশন
পাইথনের বিল্ট-ইন অপারেটর in, + (কনক্যাটেনেশন), এবং del যথাক্রমে contains(), concat(), delitem() ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়। ইন্ডেক্সড অ্যাসাইনমেন্ট অপারেটর seq[x] = y-এর জন্য setitem() ফাংশন ব্যবহৃত হয়। seq[x]-এর মান পাওয়ার জন্য getitem() ফাংশন ব্যবহৃত হয়।
>>> a = [1, 2, 3] >>> b = ['a', 'b', 'c'] >>> a + b # সিকোয়েন্স কনক্যাটেনেশন [1, 2, 3, 'a', 'b', 'c'] >>> concat(a, b) [1, 2, 3, 'a', 'b', 'c'] >>> contains(a, '2') # in অপারেটর ইমপ্লিমেন্ট করে False >>> contains(a, 2) True >>> 2 in a True >>> b[1] = 'x' # ইন্ডেক্স অ্যাসাইনমেন্ট setitem() দ্বারা ইমপ্লিমেন্ট >>> b ['a', 'x', 'c'] >>> setitem(b, 1, 'b') >>> b ['a', 'b', 'c'] >>> a[1] # ইন্ডেক্সে মান ফেচ করা - getitem() দ্বারা ইমপ্লিমেন্ট 2 >>> getitem(a, 1) 2 >>> del b[2] # ইন্ডেক্সে এলিমেন্ট ডিলিট। সংশ্লিষ্ট ফাংশন delitem() >>> b ['a', 'b'] >>> delitem(a, 2) >>> a [1, 2]
যে অপারেটরগুলো একটি স্টেপে অ্যাসাইনমেন্ট এবং কম্পিউটেশন উভয়ই সম্পাদন করে, তাদের ইন-প্লেস অপারেটর বলা হয়। পাইথনের ইন-প্লেস অপারেটরগুলো operator মডিউলে সংশ্লিষ্ট ফাংশন দ্বারা ইমপ্লিমেন্ট করা হয়। += অপারেটর যা অ্যাড এবং অ্যাসাইন অপারেশন সম্পাদন করে তার সংশ্লিষ্ট iadd() ফাংশন আছে। একইভাবে প্রতিটি অপারেটর ফাংশনের আগে 'i' প্রিফিক্স দিয়ে ইন-প্লেস সমতুল্য তৈরি করা হয়।
ইন-প্লেস অ্যাডিশন
>>> a = 10 >>> b = 20 >>> a = iadd(a, b) # a += b-এর সমতুল্য >>> a 30
ইন-প্লেস সাবট্র্যাকশন
>>> a = 10 >>> b = 20 >>> a = isub(a, b) # a -= b-এর সমতুল্য >>> a -10
ইন-প্লেস মাল্টিপ্লিকেশন
>>> a = 10 >>> b = 20 >>> a = imul(a, b) # a *= b-এর সমতুল্য >>> a 200
ইন-প্লেস ডিভিশন
>>> a = 10 >>> b = 4 >>> a = itruediv(a, b) >>> a 2.5
operator মডিউল স্ট্যান্ডার্ড বিট-ওয়াইজ অপারেটর ইমপ্লিমেন্ট করার ফাংশনও ধারণ করে:
>>> and_(10, 2) # 10 & 2-এর সমতুল্য 2 >>> or_(10, 2) # 10 | 2-এর সমতুল্য 10 >>> xor(10, 2) # 10 ^ 2-এর সমতুল্য 8 >>> lshift(10, 2) # 10 << 2-এর সমতুল্য 40 >>> rshift(10, 2) # 10 >> 2-এর সমতুল্য 2