यहाँ कोड है:
class Solution(object):
def climbStairs(self, n):
if n in {0,1}:
return 1
else:
return climbStairs(n-2) + climbStairs(n-1)
पूर्ण त्रुटि संदेश:
NameError: global name 'climbStairs' is not defined
return climbStairs(n-2) + climbStairs(n-1)
Line 7 in climbStairs (Solution.py)
ret = Solution().climbStairs(param_1)
Line 29 in _driver (Solution.py)
_driver()
Line 39 in <module> (Solution.py)
मैं सोच रहा हूं कि इसका दायरा से कुछ लेना-देना है। स्पाइडर में भी यही कोशिश की और वही परिणाम। मैं इस उदाहरण में किसी विधि के भीतर किसी विधि को पुनरावर्ती रूप से कॉल क्यों नहीं कर सकता?
इस कोड को भी आजमाया, और यह काम करता है, लेकिन केवल तभी जब मैं 'स्वयं' और 'ऑब्जेक्ट' कीवर्ड हटा देता हूं और कक्षा परिभाषा को हटा देता हूं, वह क्यों है?
पहले (त्रुटि: लेखन त्रुटि: चढ़ाई सीढ़ियों () 1 आवश्यक स्थितीय तर्क लापता: 'एन')
def climbStairs(self, n):
if n in {0,1}:
return 1
else:
return climbStairs(n-2) + climbStairs(n-1)
print(climbStairs(object, 8))
के बाद (वर्क्स! बिना क्लास डीफ़, 'सेल्फ' और 'ऑब्जेक्ट' कीवर्ड्स):
def climbStairs(n):
if n in {0,1}:
return 1
else:
return climbStairs(n-2) + climbStairs(n-1)
print(climbStairs(8))
क्लास डीफ़, कीवर्ड 'सेल्फ' और 'ऑब्जेक्ट' कोड में क्या जोड़ता है? मुझे उनकी आवश्यकता क्यों है?
2 जवाब
आप काम कर रहे कोड को निम्नलिखित पसंद करना चाहिए
कोड:
class Solution(object):
def climbStairs(self, n):
if n in {0,1}:
return 1
else:
return self.climbStairs(n-2) + self.climbStairs(n-1)
print(Solution().climbStairs(8))
आउटपुट:
34
समस्या पुनरावर्ती फ़ंक्शन कॉल के साथ है। किसी वर्ग के फ़ंक्शन को कॉल करने के लिए आपको
self
जोड़ना होगा।
अपनी विधि को self
के साथ कॉल करने का प्रयास करें:
return self.climbStairs(n-2) + self.climbStairs(n-1)
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।