আমি এই প্রশ্নটি খুঁজে পেয়েছি কারণ যদি কেউ নেস্টেড ফাংশন ব্যবহার করে তবে পারফরম্যান্সের প্রভাব কেন হয় তা আমি একটি প্রশ্ন করতে চেয়েছিলাম। কোয়াড কোর 2.5 গিগাহার্টজ ইন্টেল i5-2530M প্রসেসরের সাহায্যে উইন্ডোজ নোটবুকটিতে পাইথন ৩.২.৫ ব্যবহার করে নিম্নলিখিত ফাংশনগুলির জন্য আমি পরীক্ষা করেছি
def square0(x):
return x*x
def square1(x):
def dummy(y):
return y*y
return x*x
def square2(x):
def dummy1(y):
return y*y
def dummy2(y):
return y*y
return x*x
def square5(x):
def dummy1(y):
return y*y
def dummy2(y):
return y*y
def dummy3(y):
return y*y
def dummy4(y):
return y*y
def dummy5(y):
return y*y
return x*x
আমি নিম্নলিখিত 20 বার পরিমাপ করেছি, স্কয়ার 1, স্কোয়ার 2 এবং স্কোয়ার 5 এর জন্যও:
s=0
for i in range(10**6):
s+=square0(i)
এবং নিম্নলিখিত ফলাফল পেয়েছি
>>>
m = mean, s = standard deviation, m0 = mean of first testcase
[m-3s,m+3s] is a 0.997 confidence interval if normal distributed
square? m s m/m0 [m-3s ,m+3s ]
square0 0.387 0.01515 1.000 [0.342,0.433]
square1 0.460 0.01422 1.188 [0.417,0.503]
square2 0.552 0.01803 1.425 [0.498,0.606]
square5 0.766 0.01654 1.979 [0.717,0.816]
>>>
square0
কোনও নেস্টেড ফাংশন নেই, square1
একটি নেস্টেড ফাংশন রয়েছে, square2
দুটি নেস্টেড ফাংশন রয়েছে এবং square5
পাঁচটি নেস্টেড ফাংশন রয়েছে। নেস্টেড ফাংশনগুলি কেবল ঘোষিত হয় তবে ডাকা হয় না।
আপনি যদি কল করেন না এমন কোনও ফাংশনে যদি আপনি 5 নেস্টেড ফান্ট সংজ্ঞায়িত করে থাকেন তবে ফাংশনটির সম্পাদনের সময় নেস্টেড ফাংশন ছাড়াই ফাংশনের দ্বিগুণ। আমি মনে করি নেস্টেড ফাংশনগুলি ব্যবহার করার সময় সতর্ক হওয়া উচিত।
এই আউটপুটটি উত্পন্ন করে এমন পুরো পরীক্ষার পাইথন ফাইলটি আদর্শের সন্ধান করতে পারে ।