বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজে, ফার্স্ট ক্লাস অবজেক্ট হল সেইসব অবজেক্ট, যেগুলো একইভাবে পরিচালনা করা যায়। ফার্স্ট ক্লাস অবজেক্ট ডাটা স্ট্রাকচার হিসেবে, অন্য কিছু ফাংশনের কিছু প্যারামিটার, কন্ট্রোল স্ট্রাকচার ইত্যাদি হিসাবে সংরক্ষণ করা যেতে পারে। আমরা বলতে পারি পাইথনের একটি ফাংশন হল ফার্স্ট ক্লাস ফাংশন, যদি এটি একটি ফার্স্ট ক্লাস অবজেক্টের সমস্ত বৈশিষ্ট্য সমর্থন করে।
প্রথম শ্রেণীর ফাংশনের বৈশিষ্ট্যগুলি কী কী?
- এটি একটি অবজেক্ট টাইপের একটি উদাহরণ
- ফাংশনগুলি পরিবর্তনশীল হিসাবে সংরক্ষণ করা যেতে পারে
- অন্য কিছু ফাংশনের আর্গুমেন্ট হিসাবে প্রথম শ্রেণীর ফাংশন পাস করুন
- অন্য ফাংশন থেকে ফাংশন ফেরত দিন
- তালিকা, সেট বা অন্য কিছু ডেটা স্ট্রাকচারে ফাংশন সংরক্ষণ করুন।
প্রথমে আমরা দেখতে পাব কিভাবে পাইথনের ফাংশনকে অবজেক্ট হিসেবে ব্যবহার করা যায়। পাইথনে, একটি ফাংশন পরিবর্তনশীল হিসাবে বরাদ্দ করা যেতে পারে। এটিকে পরিবর্তনশীল হিসাবে বরাদ্দ করতে, ফাংশনটি কল করা হবে না। তাই বন্ধনী '()' থাকবে না।
উদাহরণ কোড
def cube(x): return x*x*x res = cube(5) print(res) my_cube = cube #The my_cube is same as the cube method res = my_cube(5) print(res)
আউটপুট
125 125
এখন আমরা দেখব কিভাবে অন্য ফাংশনের আর্গুমেন্ট হিসেবে ফাংশন পাস করা যায়। এই হল উদাহরণ৷
৷উদাহরণ কোড
def cube(x): return x*x*x defmy_map(method, argument_list): result = list() for item in argument_list: result.append(method(item)) return result my_list = my_map(cube, [1, 2, 3, 4, 5, 6, 7, 8]) #Pass the function as argument print(my_list)
আউটপুট
[1, 8, 27, 64, 125, 216, 343, 512]
এখানে প্রথম শ্রেণীর ফাংশনের তৃতীয় বৈশিষ্ট্য। এই ক্ষেত্রে আমরা একটি ফাংশন অন্য ফাংশন থেকে ফেরত দেব।
উদাহরণ কোড
defcreate_logger(message): deflog(): print('Log Message: ' + message) return log #Return a function my_logger = create_logger('Hello World') my_logger()
আউটপুট
Log Message: Hello World