list1 = [1, 2, 3]
list2 = list1

প্রথম লাইনে list1 নামের ভ্যারিয়েবলে একটা লিস্টের রেফারেন্স আছে। আর দ্বিতীয় লাইনে ঐ রেফারেন্সটা কপি করে রাখা হচ্ছে list2 নামের আরেকটা ভ্যারিয়বলে।

def f(x):
    return x ** 2
g = f
print(g(3))
9

কিন্তু এখানে কি হচ্ছে? এখানে কি g = f এই স্টেটমেন্টের কারণে ভিতরে ভিতরে নিচের মত করে আরেকটা ফাংশন তৈরি হচ্ছে?

def g(x):
   return x ** 2

নাকি এখানেও লিস্ট, স্ট্রিং বা ডিকশনারির মত রেফারেন্স কপি করা হচ্ছে? যদি রেফারেন্সের ব্যাপার-স্যাপার থাকে তাহলে প্রশ্ন হচ্ছে, ফাংশন মেমোরিতে কিভাবে থাকে? আর এর রেফারেন্সটাই বা কেমন হয়?

asked 26 Dec '17, 03:48

_Shaon_'s gravatar image

_Shaon_
668112

edited 26 Dec '17, 05:46

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
16618


পাইথনে সবকিছুই অবজেক্ট । সেই হিসাবে ফাংশন ও একটা অবজেক্ট । যার জন্য আপনি এই কাজটা করতে পারছেন ।

আপনি dir(g) দিয়ে দেখতে পারেন । এর কি কি জিনিস আছে ।

ধন্যবাদ :)

permanent link

answered 31 Dec '17, 04:52

menon's gravatar image

menon
4.1k222

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×74
×27

question asked: 26 Dec '17, 03:48

question was seen: 59 times

last updated: 31 Dec '17, 04:52