পূর্বে গৃহীত উত্তর হয়েছে অবচিত হিসাবে Python 3.0
। ব্যবহার inspect.getargspec
না করে আপনার এখন Signature
ক্লাসটি বেছে নেওয়া উচিত যা এটি ছাড়িয়ে গেছে।
ফাংশন জন্য একটি স্বাক্ষর তৈরি করা হচ্ছে মাধ্যমে সহজ signature
ফাংশন :
from inspect import signature
def someMethod(self, arg1, kwarg1=None):
pass
sig = signature(someMethod)
এখন, আপনি এটির মাধ্যমে এটির পরামিতিগুলি দ্রুত দেখতে str
পারেন:
str(sig) # returns: '(self, arg1, kwarg1=None)'
অথবা আপনি প্যারামিটার অবজেক্টগুলির মাধ্যমে বিশিষ্ট নামগুলির ম্যাপিংও পেতে পারেন sig.parameters
।
params = sig.parameters
print(params['kwarg1']) # prints: kwarg1=20
উপরন্তু, আপনি কল করতে পারেন len
উপর sig.parameters
এছাড়াও আর্গুমেন্ট এই ফাংশন প্রয়োজন সংখ্যা দেখতে:
print(len(params)) # 3
params
ম্যাপিংয়ের প্রতিটি প্রবেশই আসলে এমন একটি Parameter
অবজেক্ট যা আপনার জীবনকে আরও সহজ করে তোলে এমন আরও বৈশিষ্ট্য রয়েছে। উদাহরণস্বরূপ, একটি পরামিতি দখল করা এবং এর ডিফল্ট মানটি এখন সহজেই এর সাথে সঞ্চালিত হয়:
kwarg1 = params['kwarg1']
kwarg1.default # returns: None
একইভাবে অন্তর্ভুক্ত বস্তু বাকি জন্য parameters
।
পাইথন 2.x
ব্যবহারকারীদের ক্ষেত্রে, অবহেলিত inspect.getargspec
না হলেও ভাষা শীঘ্রই :-) হয়ে উঠবে। Signature
ক্লাসে উপলব্ধ নয় 2.x
সিরিজ এবং হবে না। সুতরাং আপনার এখনও কাজ করা প্রয়োজন inspect.getargspec
।
পাইথন 2 এবং 3 এর মধ্যে রূপান্তরের জন্য, যদি আপনি কোড আছে ইন্টারফেস উপর নির্ভর getargspec
পাইথন 2 এবং সুইচিং signature
মধ্যে 3
খুব কঠিন, আপনাকে মূল্যবান বিকল্প আছে ব্যবহারের inspect.getfullargspec
। এটি getargspec
কোনও ক্রিয়াকলাপের আর্গুমেন্টগুলি ধরার জন্য একই ধরণের ইন্টারফেসের প্রস্তাব দেয় (একটি একক কলযোগ্য আর্গুমেন্ট) এবং কিছু অতিরিক্ত ক্ষেত্রেও পরিচালনা getargspec
করে না যা:
from inspect import getfullargspec
def someMethod(self, arg1, kwarg1=None):
pass
args = getfullargspec(someMethod)
সঙ্গে getargspec
, getfullargspec
একটি ফেরৎ NamedTuple
যা আর্গুমেন্ট উপস্থিত রয়েছে।
print(args)
FullArgSpec(args=['self', 'arg1', 'kwarg1'], varargs=None, varkw=None, defaults=(None,), kwonlyargs=[], kwonlydefaults=None, annotations={})
inspect
স্ট্যান্ডার্ড লাইব্রেরি মডিউলটির কোনও যৌক্তিকতা থাকবে না ।