में फ़ंक्शन परिभाषा प्रदर्शित करें मैं पाइथन इंटरेक्टिव शैल (विंडोज XP के तहत ActiveState ActivePython 2.6.4) में काम कर रहा हूं। मैंने एक फ़ंक्शन बनाया जो मैं चाहता हूं। हालांकि, मैंने स्क्रीन को साफ़ कर दिया है, इसलिए मैं वापस नहीं जा सकता और फ़ंक्शन परिभाषा को देख सकता हूं। यह एक मल्टीलाइन फ़ंक्शन भी है ताकि लाइनों को फिर से चलाने के लिए ऊपर तीर न्यूनतम मूल्य का हो। क्या फ़ंक्शन के वास्तविक कोड को वापस करने के लिए वैसे भी है? डीआईआर() द्वारा प्रदर्शित "कोड" और "func_code" विशेषताएँ हैं, लेकिन मुझे नहीं पता कि उनमें क्या आवश्यक है या नहीं।इंटरैक्टिव खोल
उत्तर
नहीं है, __code__
और func_code
संकलित बाईटकोड के लिए संदर्भ - आप उन्हें एकत्रित न कर सकते हैं (dis.dis
देखें), लेकिन वापस अजगर स्रोत कोड के लिए नहीं मिलता है।
ओह, स्रोत कोड बस चला गया है, कहीं भी याद नहीं ...:
>>> import inspect
>>> def f():
... print 'ciao'
...
>>> inspect.getsource(f)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/inspect.py", line 694, in getsource
lines, lnum = getsourcelines(object)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/inspect.py", line 683, in getsourcelines
lines, lnum = findsource(object)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/inspect.py", line 531, in findsource
raise IOError('could not get source code')
IOError: could not get source code
>>>
तो inspect
यह करने के लिए नहीं मिल सकता है, कि एक बहुत सांकेतिक प्रवेश नहीं होता।
यदि आप जीएनयू readline
का उपयोग कर एक मंच पर थे (मूल रूप से, को छोड़कर किसी भी विंडोज़), आप तथ्य यह है कि readline
ही कुछ "इतिहास" याद करता है और एक फाइल करने के लिए इसे बाहर लिख सकते हैं फायदा उठाने सकता है ... :
>>> readline.write_history_file('/tmp/hist.txt')
और फिर उस इतिहास फ़ाइल को पढ़ें - हालांकि, मुझे विंडोज़ में ऐसा करने का कोई तरीका नहीं है।
आप "कच्चे" कमांड दुभाषिया के बजाय विशेष रूप से विंडोज जैसे प्लेटफॉर्म पर बेहतर मेमोरी क्षमताओं के साथ कुछ आईडीई का उपयोग करना चाह सकते हैं।
मैं आईडीई के बारे में सहमत हूं।लेकिन खोल एक डॉस कमांड विंडो की तरह दिखता है और पीएचबी यह नहीं पूछता कि मैं क्या कर रहा हूं। –
शायद यह निष्क्रिय के लिए एक अच्छा फीचर अनुरोध है ... –
ipython एक डॉस कमांड विंडो पर एक समृद्ध आईडीई के लिए मदद कर सकता है, http://ipython.scipy.org/moin/ देखें - यह बहुत समृद्ध है कि मैंने ट्रैक खो दिया है अब तक इसकी अधिकांश विशेषताएं ;-)। –
जब तक कि सक्रियण खोल पर ऐसा करने का कोई तरीका न हो, नहीं, आपके द्वारा खोलने वाले सटीक कोड को पुनर्प्राप्त करने का कोई तरीका नहीं है। कम से कम लिनक्स पर, साइथन द्वारा प्रदान किए गए पायथन शेल का उपयोग करके इसे प्राप्त करने का कोई विशेष तरीका नहीं है। शायद iPython का उपयोग कर।
func_code विशेषता एक ऑब्जेक्ट है जो फ़ंक्शन बाइटकोड का प्रतिनिधित्व करती है, केवल एक वस्तु जो आप इस ऑब्जेक्ट से प्राप्त कर सकते हैं वह बाइटकोड है, न कि "मूल" कोड।
लिनक्स पर, 'readline.write_history_file' मदद करेगा - लेकिन विंडोज़ पर नहीं। –
नहीं, वास्तव में नहीं। आप yourfunc.func_code.co_code (वास्तव में संकलित बाइटकोड) को एक फ़ाइल में लिख सकते हैं और फिर उन्हें डिकंपाइल करने के लिए डिकंपाइल या unpyc का उपयोग करने का प्रयास कर सकते हैं, लेकिन दोनों परियोजनाएं पुराने और अनियमित हैं, और कभी भी बहुत अच्छी तरह से डिकंपलिंग का समर्थन नहीं किया है।
यह शुरू करने के लिए फ़ाइल में बस अपना फ़ंक्शन लिखना बेहद आसान है।
यह काफी लंबा समय रहा है लेकिन किसी को इसकी आवश्यकता हो सकती है।
>>> def sum(a, b, c):
... # sum of three number
... return a+b+c
...
>>> from dill.source import getsource
>>>
>>> getsource(sum)
'def sum(a, b, c):\n # sum of three number\n return a+b+c\n'
dill
रन pip install dill
स्थापित करने के लिए: getsource
स्रोत कोड देता है। यह स्वरूपित पाने के लिए:
>>> fun = getsource(sum).replace("\t", " ").split("\n")
>>> for line in fun:
... print line
...
def sum(a, b, c):
# sum of three number
return a+b+c
- 1. जाओ इंटरैक्टिव खोल
- 2. एक इंटरैक्टिव खोल
- 3. आरईपीएल/इंटरैक्टिव खोल?
- 4. एफ # इंटरैक्टिव खोल (एफएसआई) ट्यूटोरियल?
- 5. क्या एक इंटरैक्टिव सी खोल बनाना संभव है?
- 6. स्कैला में रीडलाइन समर्थन के साथ इंटरैक्टिव खोल कैसे लिखें?
- 7. php इंटरैक्टिव खोल किसी भी उत्पादन नहीं है?
- 8. मैं एफ # इंटरैक्टिव शैल
- 9. कैसे इंटरैक्टिव सांत्वना एप्लिकेशन
- 10. (इंटरैक्टिव) ग्राफ?
- 11. खोल
- 12. खोल
- 13. खोल
- 14. खोल
- 15. खोल
- 16. खोल
- 17. एक आवेदन में एक ग्राफिकल इंटरैक्टिव IronPython खोल कैसे एम्बेड करें?
- 18. क्या ऐसी कोई साइट है जो एक इंटरैक्टिव एफ # खोल प्रदान करती है?
- 19. खोल/बैश
- 20. क्या इंटरैक्टिव मोड
- 21. असिंक्रोनस इंटरैक्टिव पायथन स्क्रिप्ट
- 22. एम्बेडिंग एफ # इंटरैक्टिव
- 23. जावा लाइब्रेरी इंटरैक्टिव ग्राफ
- 24. गिट में गैर-इंटरैक्टिव
- 25. गैर-इंटरैक्टिव एसपीपी
- 26. गिट इंटरैक्टिव अस्थिर
- 27. गैर इंटरैक्टिव जीआईटी उपयोग
- 28. लिनक्स सी: इंटरैक्टिव आउटपुट
- 29. document.readystate "इंटरैक्टिव" बनाम ondomcontentloaded?
- 30. Git इंटरैक्टिव रिबेस कोई
मैं "सहायता" फ़ंक्शन का उपयोग का सुझाव दिया था, लेकिन फिर एहसास हुआ आप समारोह में वास्तविक कोड चाहते हैं, न कि केवल यह हस्ताक्षर है। –
मैं कंसोल में एक कोड के रूप में लिखे गए सभी कोड प्राप्त करना चाहता हूं लेकिन जैसा कि आपको प्राप्त उत्तरों के लिए यह संभव नहीं है ... उदास –