अन्य भाषाओं में मैं यह निर्धारित करने के लिए एक प्रतिबिंब एपीआई के माध्यम से वर्तमान फ्रेम प्राप्त कर सकता हूं कि मैं वर्तमान में किस क्षेत्र में स्थानीय हूं।पायथन में, मैं वर्तमान फ्रेम कैसे प्राप्त करूं?
क्या Python में ऐसा करने का कोई तरीका है?
अन्य भाषाओं में मैं यह निर्धारित करने के लिए एक प्रतिबिंब एपीआई के माध्यम से वर्तमान फ्रेम प्राप्त कर सकता हूं कि मैं वर्तमान में किस क्षेत्र में स्थानीय हूं।पायथन में, मैं वर्तमान फ्रेम कैसे प्राप्त करूं?
क्या Python में ऐसा करने का कोई तरीका है?
import sys
sys._getframe(number)
वर्तमान फ्रेम के लिए संख्या 0 और फ्रेम के लिए 1 और इतने पर।
सबसे अच्छा परिचय मैं अजगर में फ्रेम करने के लिए मिल गया है का निरीक्षण मॉड्यूल के रूप में यह सबसे आम बातें आप फ्रेम के साथ क्या करना चाहते हैं करता है पर देखने के here
हालांकि है।
dir फ़ंक्शन देखें।
क्षमा करें - वास्तव में फ्रेम के लिए प्रासंगिक नहीं है, लेकिन अभी भी उपयोगी है!
मैं डिबगिंग और प्रवेश के लिए इन छोटे लोगों का उपयोग करें:
import sys
def LINE(back = 0):
return sys._getframe(back + 1).f_lineno
def FILE(back = 0):
return sys._getframe(back + 1).f_code.co_filename
def FUNC(back = 0):
return sys._getframe(back + 1).f_code.co_name
def WHERE(back = 0):
frame = sys._getframe(back + 1)
return "%s/%s %s()" % (os.path.basename(frame.f_code.co_filename),
frame.f_lineno, frame.f_code.co_name)
सर्वश्रेष्ठ उत्तर inspect मॉड्यूल का उपयोग करने के लिए हो सकता है; sys
में एक निजी समारोह नहीं है।
import inspect
current_frame = inspect.currentframe()
धन्यवाद। लेकिन एक बात ध्यान में रखना, उस लिंक से: "सीपीथन कार्यान्वयन विस्तार: यह फ़ंक्शन दुभाषिया में पाइथन स्टैक फ्रेम समर्थन पर निर्भर करता है, जो पाइथन के सभी कार्यान्वयन में मौजूद होने की गारंटी नहीं है। यदि पाइथन स्टैक फ्रेम समर्थन के बिना कार्यान्वयन में चल रहा है यह फ़ंक्शन कोई नहीं देता है। " – twasbrillig
"पायथन निरीक्षण स्टैक फ्रेम" के लिए पहला Google परिणाम आपके इच्छित उत्तर देता है; http://docs.python.org/library/inspect.html – jrockway