मैं inspect
मॉड्यूल का उपयोग करने की कोशिश कर रहा हूं, हालांकि ऐसा लगता है कि मैं इसे अंतर्निहित (मूल?) वर्ग पर उपयोग नहीं कर सकता, या फिर मुझे गलत समझा जाता है।बिल्ट-इन पायथन क्लास कन्स्ट्रक्टर की तर्क सूची कैसे प्राप्त करें?
मैं पायथन 2.7 का उपयोग कर रहा हूं और पायथन 3.2 के साथ प्रयास किया।
यह काम कर रहा है:
>>> import inspect
>>> class C:
... def __init__(self,a,b=4):
... self.sum = a + b
...
>>> inspect.getargspec(C.__init__)
ArgSpec(args=['self','a', 'b'], varargs=None, keywords=None, defaults=(4,))
यह काम नहीं कर रहा:
>>> import inspect
>>> import ast
>>> inspect.getargspec(ast.If.__init__)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 813, in getargspec
raise TypeError('{!r} is not a Python function'.format(func))
TypeError: <slot wrapper '__init__' of '_ast.AST' objects> is not a Python function
मैं अगर वहाँ एक और तकनीक इन मानकों स्वचालित रूप से प्राप्त करने के लिए है सोच रहा हूँ?
(मेरे मामले में, मुझे एक विकल्प के बारे में लगता है जो पाइथन व्याकरण, एएसडीएल फ़ाइल को पार्स करना होगा जो पीपीपी प्रोजेक्ट के स्रोत में मैंने देखा कुछ कोड का उपयोग करके एएसटी नोड्स को कैसे लगाया जाए, लेकिन मैं सोच रहा हूं कि वहां क्या है एक और तरीका है)