কম্পিউটার

Functools — পাইথনে কলযোগ্য বস্তুর উপর উচ্চ-ক্রম ফাংশন এবং অপারেশন


পাইথনে ফাংশন উচ্চতর ক্রমে বলা হয়। এর মানে হল যে এটি অন্য ফাংশনে আর্গুমেন্ট হিসাবে পাস করা যেতে পারে এবং/অথবা অন্য ফাংশনও ফিরিয়ে দিতে পারে। Functools মডিউল এই ধরনের উচ্চ অর্ডার ফাংশনের জন্য গুরুত্বপূর্ণ ইউটিলিটি প্রদান করে।

আংশিক() ফাংশন

এই ফাংশন একটি কলযোগ্য 'আংশিক' বস্তু প্রদান করে। বস্তু নিজেই একটি ফাংশন মত আচরণ করে. আংশিক() ফাংশন আর্গুমেন্ট হিসাবে অন্য একটি ফাংশন গ্রহণ করে এবং একটি ফাংশনের আর্গুমেন্টের কিছু অংশ ফ্রিজ করে যার ফলে একটি সরলীকৃত স্বাক্ষর সহ একটি নতুন বস্তু তৈরি হয়৷

অন্তর্নির্মিত int() ফাংশন একটি সংখ্যাকে দশমিক পূর্ণসংখ্যাতে রূপান্তর করে। int() এর ডিফল্ট স্বাক্ষর হল

int(x, base = 10)

আংশিক() ফাংশনটি একটি কলযোগ্য তৈরি করতে ব্যবহার করা যেতে পারে যা int() ফাংশনের মতো আচরণ করে যেখানে বেস আর্গুমেন্ট দুটি ডিফল্ট হয়৷

>>> import functools
>>> binint = functools.partial(int, base = 2)
>>> binint('1001')
9

নিম্নলিখিত উদাহরণে, একটি ব্যবহারকারী সংজ্ঞায়িত ফাংশন myfunction() মূল ফাংশনের আর্গুমেন্টগুলির একটিতে ডিফল্ট মান সেট করে একটি আংশিক ফাংশনের আর্গুমেন্ট হিসাবে ব্যবহার করা হয়৷

>>> def myfunction(a,b):
return a*b

>>> partfunction = functools.partial(myfunction,b = 10)
>>> partfunction(10)
100

আংশিক পদ্ধতি()

এই ফাংশনটি একটি নতুন আংশিক পদ্ধতি বর্ণনাকারী প্রদান করে যা আংশিক মত আচরণ করে ব্যতীত এটি সরাসরি কলযোগ্য হওয়ার পরিবর্তে একটি পদ্ধতির সংজ্ঞা হিসাবে ব্যবহার করার জন্য ডিজাইন করা হয়েছে৷

Cmp_to_key() ফাংশন

Python 2.x-এ দুটি বস্তুর তুলনা করার জন্য cmp() ফাংশন ছিল। পাইথন 3 এটিকে অবমূল্যায়ন করেছে। functools মডিউল cmp_to_key() ফাংশন প্রদান করে যার মাধ্যমে ব্যবহারকারীর সংজ্ঞায়িত ক্লাসের বস্তুর তুলনা করা যায়

from functools import cmp_to_key

class test:
def __init__(self,x):
self.x = x
def __str__(self):
return str(self.x)
def cmpr( a,b):
if a.x> = b.x: return True
if a.x<b.x: return False
mykey = cmp_to_key(cmpr)

কমানো() ফাংশন

reduce() ফাংশন দুটি আর্গুমেন্ট পায়, একটি ফাংশন এবং একটি পুনরাবৃত্তিযোগ্য। যাইহোক, এটি একটি একক মান প্রদান করে। আর্গুমেন্ট ফাংশনটি বাম থেকে ডানে তালিকার দুটি আর্গুমেন্ট সমষ্টিগতভাবে প্রয়োগ করা হয়। প্রথম কলে ফাংশনের ফলাফল প্রথম আর্গুমেন্টে পরিণত হয় এবং তালিকার তৃতীয় আইটেমটি দ্বিতীয় হয়। তালিকা শেষ না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করা হয়৷

নীচের উদাহরণে, mult() ফাংশনটি দুটি সংখ্যার গুণফল ফেরানোর জন্য সংজ্ঞায়িত করা হয়েছে। এই ফাংশনটি 1 থেকে 10 এর মধ্যে সংখ্যার পরিসরের সাথে reduce() ফাংশনে ব্যবহৃত হয়। আউটপুট হল 10 এর ফ্যাক্টরিয়াল মান।

import functools
def mult(x,y):
return x*y

num = functools.reduce(mult, range(1,11))
print ('factorial of 10: ',num)

আউটপুট

factorial of 10: 3628800

  1. কেন কিছু Python ফাংশন ফাংশন নামের আগে এবং পরে আন্ডারস্কোর __ আছে?

  2. পাইথন ফাংশন বস্তু?

  3. কিভাবে একটি Python ফাংশন একটি ফাংশন ফেরত দিতে পারে?

  4. Python এবং Boto 3 দিয়ে S3 অবজেক্ট ডাউনলোড করুন