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

পাইথন ফাংশন থেকে ফাংশন রিটার্ন করা

পাইথন ফার্স্ট-ক্লাস ফাংশন সাপোর্ট করে, অর্থাৎ ফাংশন থেকে ফাংশন রিটার্ন করা যায়। এটি ক্লোজার এবং ফ্যাক্টরি প্যাটার্নের ভিত্তি।

উদাহরণ

def f2(c, d):
    return c, d

def f1(a, b):
    c = a + 1
    d = b + 2
    return lambda: f2(c, d)  # ল্যাম্বডা রিটার্ন (ক্লোজার)

result = f1(1, 2)
print(result)      #  at 0x...>
print(result())    # (2, 4)

ব্যাখ্যা

  • f1 কল হলে c=2, d=4 ক্যাপচার করে একটি ল্যাম্বডা রিটার্ন করে।
  • রিটার্ন করা ল্যাম্বডা কল করলে f2(2, 4) এক্সিকিউট হয়।
  • এটি ক্লোজার — ইনার ফাংশন আউটার ফাংশনের ভেরিয়েবল "ক্যাপচার" করে।

ফাংশন ফ্যাক্টরি প্যাটার্ন

def make_multiplier(factor):
    def multiplier(x):
        return x * factor
    return multiplier

times3 = make_multiplier(3)
times5 = make_multiplier(5)

print(times3(10))  # 30
print(times5(10))  # 50

ব্যবহার ক্ষেত্র

  • ডেকোরেটর
  • কনফিগারেবল ফাংশন জেনারেশন
  • পার্শিয়াল অ্যাপ্লিকেশন (functools.partial)
  • কলব্যাক ফ্যাক্টরি
  1. পাইথন ল্যাম্বডা ফাংশন: একটি পরিচিতি

  2. Matplotlib-এ ফাংশন থেকে ফিগার অবজেক্ট রিটার্ন করা

  3. পাইথনে ফাংশন ওভারলোডিং করার পদ্ধতি

  4. পাইথনে রিকারসিভ ফাংশন তৈরি করার পদ্ধতি