मेरे कोड को डीबग करने में, मैं एक सूची समझ का उपयोग करना चाहता हूं। हालांकि, ऐसा लगता है कि जब मैं किसी फ़ंक्शन के अंदर हूं तो मैं डीबगर से सूची समझ का मूल्यांकन नहीं कर सकता।पायथन डीबगर से सूची समझ स्कोप त्रुटि
मैं पायथन 3.4 का उपयोग कर रहा हूं।
स्क्रिप्ट सामग्री:
$ cat test.py
#!/usr/bin/python
def foo():
x = [1, 2, 3, 3, 4]
print(x)
foo()
इंटरएक्टिव डिबगिंग:
$ python3 -mpdb test.py
> /tmp/test.py(3)<module>()
-> def foo():
(Pdb) step
> /tmp/test.py(8)<module>()
-> foo()
(Pdb)
--Call--
> /tmp/test.py(3)foo()
-> def foo():
(Pdb)
> /tmp/test.py(4)foo()
-> x = [1, 2, 3, 3, 4]
(Pdb)
> /tmp/test.py(6)foo()
-> print(x)
(Pdb) p [x for _ in range(1)]
*** NameError: name 'x' is not defined
(Pdb) p x
[1, 2, 3, 3, 4]
क्यों x
सूची समझ के लिए अज्ञात है? मैं डीबगर से सूची समझ का मूल्यांकन कैसे कर सकता हूं, या समकक्ष व्यवहार प्राप्त कर सकता हूं? क्या यह एक बग है, या यह डीबगर के लिए मौलिक सीमा का कुछ प्रकार है?
@ वीड्राक हू, मुझे बस एक छोटी टेस्ट स्क्रिप्ट में एहसास हुआ, कि यह काम करता है। मैं कुछ खुदाई करूँगा और एक छोटी दौड़ने योग्य लिपि के साथ वापस आऊंगा! – gerrit
@Veedrac ने इसे बिल्कुल जोड़ने के लिए संपादित किया। – gerrit
सरल उदाहरण: 'पी (लैम्ब्डा: एक्स)()' – Veedrac