में एक पायथन फ़ंक्शन या चर के सभी उपयोगों को कैसे ढूंढें I फ़ंक्शन स्तर पर एक पायथन पैकेज में फ़ंक्शंस और चर के उपयोग/कारणों को मैप करने का प्रयास कर रहा हूं। वहाँ कई मॉड्यूल जहां कार्य/चर अन्य कार्यों में इस्तेमाल किया जाता है, और मैं एक शब्दकोश है कि तरह दिखता है बनाना चाहते हैं:एक पायथन पैकेज
{'function_name':{'uses': [...functions used in this function...],
'causes': [...functions that use this function...]},
...
}
कार्यों है कि मैं के मॉड्यूल में परिभाषित करने की आवश्यकता की बात कर रहा हूँ पैकेज।
मैं इस पर कैसे शुरू करूं? मुझे पता है कि मैं ऐसा करके पैकेज __dict__
और पैकेज में परिभाषित कार्यों के लिए परीक्षा के माध्यम से पुनरावृति कर सकते हैं:
import package
import inspect
import types
for name, obj in vars(package).items():
if isinstance(obj, types.FunctionType):
module, *_ = inspect.getmodule(obj).__name__.split('.')
if module == package.__name__:
# Now that function is obtained need to find usages or functions used within it
लेकिन उस के बाद मैं वर्तमान समारोह के भीतर इस्तेमाल कार्यों खोजने की जरूरत है। यह कैसे किया जा सकता है? क्या इस तरह के काम के लिए कुछ पहले से विकसित हुआ है? मुझे लगता है कि प्रोफाइलिंग पुस्तकालयों को ऐसा कुछ करना पड़ सकता है।
यह जांचें https://docs.python.org/2/library/ast.html –
अब तक वादा करता है। जाहिर है ये "गायब" 'ast' दस्तावेज़ हैं: https://greentreesnakes.readthedocs.io/en/latest/index.html – pbreach
@Ni। इस मॉड्यूल का सुझाव देने के लिए धन्यवाद। मैंने वास्तव में काम करने वाले कुछ को लागू करना समाप्त कर दिया। – pbreach