inspect মডিউল ব্যবহার করে ফাংশনের প্যারামিটার নাম, ডিফল্ট মান, *args, **kwargs ইত্যাদি বের করা যায়।
উদাহরণ: inspect.getargspec() (লিগেসি)
import inspect
def aMethod(arg1, arg2):
pass
def foo(a, b, c=4, *arglist, **keywords):
pass
print(inspect.getargspec(aMethod))
# ArgSpec(args=['arg1', 'arg2'], varargs=None, keywords=None, defaults=None)
print(inspect.getargspec(foo))
# ArgSpec(args=['a', 'b', 'c'], varargs='arglist', keywords='keywords', defaults=(4,))
আধুনিক পদ্ধতি: inspect.signature() (Python 3.3+)
sig = inspect.signature(foo)
for name, param in sig.parameters.items():
print(f"{name}: kind={param.kind}, default={param.default}")
আউটপুট
a: kind=POSITIONAL_OR_KEYWORD, default=b: kind=POSITIONAL_OR_KEYWORD, default= c: kind=POSITIONAL_OR_KEYWORD, default=4 arglist: kind=VAR_POSITIONAL, default= keywords: kind=VAR_KEYWORD, default=
Parameter Kind কনস্ট্যান্ট
POSITIONAL_ONLY— শুধু পজিশনাল (/আগে)POSITIONAL_OR_KEYWORD— সাধারণVAR_POSITIONAL—*argsKEYWORD_ONLY— শুধু কিওয়ার্ড (*পরে)VAR_KEYWORD—**kwargs
প্যারামিটার নামের লিস্ট
params = list(sig.parameters.keys()) print(params) # ['a', 'b', 'c', 'arglist', 'keywords']