কম্পিউটার টিউটোরিয়াল

পাইথন operator মডিউল: ফাংশনাল আকারে অপারেটর ব্যবহার


operator মডিউল কী?

পাইথনের বিল্ট-ইন অপারেটরগুলো (যেমন +, -, ==, [ ]) ফাংশন আকারে উপলব্ধ। হাই-অর্ডার ফাংশন (map, filter, sorted ইত্যাদি) এর সাথে ব্যবহারে সুবিধা হয়।

ইমপোর্ট

import operator

অ্যারিথমেটিক অপারেটর ফাংশন

ফাংশনসমানউদাহরণ
operator.add(x, y)x + yadd(2, 3) → 5
operator.sub(x, y)x - ysub(5, 3) → 2
operator.mul(x, y)x * ymul(4, 5) → 20
operator.truediv(x, y)x / ytruediv(7, 2) → 3.5
operator.floordiv(x, y)x // yfloordiv(7, 2) → 3
operator.mod(x, y)x % ymod(7, 3) → 1
operator.pow(x, y)x ** ypow(2, 10) → 1024

রিলেশনাল/কমপেরিজন অপারেটর ফাংশন

ফাংশনসমানউদাহরণ
operator.lt(x, y)x < ylt(2, 3) → True
operator.le(x, y)x <= yle(3, 3) → True
operator.eq(x, y)x == yeq(5, 5) → True
operator.ne(x, y)x != yne(5, 3) → True
operator.gt(x, y)x > ygt(5, 3) → True
operator.ge(x, y)x >= yge(5, 5) → True

লজিক্যাল/বুলিয়ান অপারেটর

ফাংশনসমান
operator.not_(x)not x
operator.truth(x)bool(x)
operator.is_(x, y)x is y
operator.is_not(x, y)x is not y

বিটওয়াইজ অপারেটর

ফাংশনসমান
operator.and_(x, y)x & y
operator.or_(x, y)x | y
operator.xor(x, y)x ^ y
operator.invert(x)~x
operator.lshift(x, y)x << y
operator.rshift(x, y)x >> y

কন্টেইনার/সিকোয়েন্স অপারেটর

ফাংশনসমানবিবরণ
operator.getitem(obj, key)obj[key]ইন্ডেক্সিং/কী লুকআপ
operator.setitem(obj, key, val)obj[key] = valঅ্যাসাইনমেন্ট
operator.delitem(obj, key)del obj[key]ডিলিশন
operator.contains(obj, item)item in objমেম্বারশিপ টেস্ট
operator.concat(a, b)a + bসিকোয়েন্স কনক্যাট
operator.indexOf(a, x)a.index(x)ইন্ডেক্স খোঁজা (৩.১০+)
operator.countOf(a, x)a.count(x)কাউন্ট (৩.১০+)

প্র্যাক্টিক্যাল উদাহরণ: sorted() এ key হিসেবে


from operator import itemgetter, attrgetter, methodcaller

# ডিকশনারির লিস্ট সর্ট
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
sorted_by_age = sorted(data, key=itemgetter('age'))
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}]

# অবজেক্ট অ্যাট্রিবিউট দিয়ে সর্ট
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person('Alice', 30), Person('Bob', 25)]
sorted_people = sorted(people, key=attrgetter('age'))

# মেথড কল করে সর্ট
words = ['apple', 'banana', 'cherry']
sorted_by_upper = sorted(words, key=methodcaller('upper'))

অন্যান্য উপকারী ফাংশন

  • operator.itemgetter(*items) — একাধিক আইটেম একসাথে গেট (টাপল রিটার্ন)
  • operator.attrgetter(*attrs) — একাধিক অ্যাট্রিবিউট একসাথে গেট
  • operator.methodcaller(name, *args, **kwargs) — মেথড কলার ফাংশন বানায়
  • operator.length_hint(obj) — লেনথ অনুমান (৩.৪+)
  1. পাইথনে <> অপারেশনের আচরণ কী?

  2. পাইথনে % অপারেটর এর ফাংশন ব্যাখ্যা করুন।

  3. পাইথনে is not অপারেটর কী?

  4. পাইথনে not in অপারেটর কী?