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

পাইথন ফাংশন কি অবজেক্ট?

হ্যাঁ, পাইথনে ফাংশন ফুল অবজেক্ট (First-Class Citizen)। পাইথন def স্টেটমেন্ট বা lambda এক্সপ্রেশন দিয়ে ফাংশন অবজেক্ট তৈরি করে।

ফাংশন অবজেক্টের বৈশিষ্ট্য

def foo():
    pass

foo.score = 20          # অ্যাট্রিবিউট অ্যাসাইন
print(type(foo))        # 
print(foo.score)        # 20
print(type(lambda x: x)) # 

ফাংশন অবজেক্ট কী কী করতে পারে?

  • ভেরিয়েবলে অ্যাসাইন: f = my_func
  • আর্গামেন্ট হিসেবে পাস: map(my_func, data)
  • রিটার্ন করা: return inner_func
  • ডেটা স্ট্রাকচারে রাখা: funcs = [f1, f2, f3]
  • অ্যাট্রিবিউট রাখা: func.metadata = {...}
  • নেস্টেড ফাংশন ডিফাইন: ক্লোজার তৈরি

বিল্ট-ইন অ্যাট্রিবিউট

  • __name__ — ফাংশনের নাম
  • __doc__ — ডকস্ট্রিং
  • __module__ — মডিউল নাম
  • __annotations__ — টাইপ হিন্ট
  • __code__ — কোড অবজেক্ট (বাইটকোড)
  • __defaults__ — ডিফল্ট আর্গামেন্ট ভ্যালু
  • __closure__ — ক্লোজার সেল (যদি থাকে)

সেট/গেট অ্যাট্রিবিউট ফাংশন

setattr(foo, 'age', 23)
getattr(foo, 'age')  # 23
  1. জাভাস্ক্রিপ্টে কলব্যাক ফাংশন কী?

  2. জাভাস্ক্রিপ্টে পার্শিয়াল ফাংশন কী?

  3. পাইথনে অ্যানোনিমাস ফাংশন (Anonymous Functions)

  4. পাইথনে issubset() ফাংশন