मैं कोड निम्नलिखित है:staticmethod और रिकर्सन?
class Foo(object):
def __init__(self):
baz=self.bar(10)
@staticmethod
def bar(n):
if n==0:
return 'bar'
else:
return bar(n-1)
बार() एक पुनरावर्ती समारोह वह खुद के संदर्भ में की जरूरत के रूप में। हालांकि, बार() एक कक्षा के अंदर है, और return bar(n-1)
पर कॉल नहीं करेगा, NameError: global name 'bar' is not defined
का आह्वान करेगा। मैं इस तरह की स्थिति से कैसे निपट सकता हूं? क्या मुझे बार() को कक्षा या उदाहरण विधि में बदलना चाहिए, जिससे self
या cls
तक पहुंच की अनुमति मिलती है?
रिकर्सिव कॉल सहायता में 'Foo.bar (n-1)' को कॉल करना क्या मदद करता है? – inspectorG4dget