Python3 NameError: имя «метода» не определено для определенного @staticmethodPython

Программы на Python
Anonymous
Python3 NameError: имя «метода» не определено для определенного @staticmethod

Сообщение Anonymous »

Я пытаюсь написать простую рекурсивную функцию на Python3. Поскольку я изучаю OO Java, я также хочу писать код Python, включающий объекты. Вот мой код ниже. Я предлагаю пользователю ввести число, и на экране должно отображаться каждое целое число меньше 5.

Код: Выделить всё

class Recursion:
@staticmethod
def recursive(x):
if (x>5):
print (x)
recursive(x - 1)

def main(self):
x = int(input('Enter a number for recursive addition: '))
recursive(x)
Однако, когда я запускаю его на терминале, он говорит: «NameError: имя «рекурсивное» не определено». Вот как выглядит ошибка:

Код: Выделить всё

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from Recursion import *
>>> a = Recursion()
>>> a.main()
Enter a number for recursive addition: 10
Traceback (most recent call last):
File "", line 1, in 
File "/Users/ZycinG/Desktop/Python Practice/Recursion.py", line 9, in main
recursive(x)
NameError: name 'recursive' is not defined
В чем причина проблемы? Я знаю, как просто написать рекурсивную функцию, присвоить ей аргумент и запустить ее на терминале. Но я хочу практиковать ООП.

Подробнее здесь: https://stackoverflow.com/questions/360 ... aticmethod

Вернуться в «Python»