Ошибка NameError: name is not defined
NameError: name is not defined в импортируемой консольной функции, при завершении работы импортируемой библиотеки
ПЕРЕПИСАНО Консоль:
Здраствуйте, пользователь. Введите свой псевдоним: MrSvinia
Ваш псевдоним: MrSvinia. Вы уверены? +
Ваш псевдоним MrSvinia утверждён. Приятного использования системы "Чарльз".
Введите команду: start basic-math
Добро пожаловать в "Базовую математику"!
Введите команду (basic-math): stop
Спасибо за использование basic-math. Процесс завершён.
Traceback (most recent call last):
File "C:\Users\niels\PycharmProjects\Charles\client\re-main.py", line 45, in <module>
print(eval(command[:6] + '.main()'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 1, in <module>
NameError: name 'start' is not defined
Process finished with exit code 1
main:
import importlib
True_mess = ['+', 'Yes', 'yes', 'True', 'true', 1, '1', True]
False_mess = ['-', 'Not', 'not', 'False', 'false', 0, '0', False]
flag_auth = False
while not flag_auth:
login = input('Здраствуйте, пользователь. Введите свой псевдоним: ')
if login:
if input('Ваш псевдоним: ' + login + '. Вы уверены? ') in True_mess:
print('Ваш псевдоним ' + login + ' утверждён. Приятного использования системы "Чарльз".')
break
else:
print('Подтверждение не распознано или отклонено.')
del flag_auth
file_inst_func = open('inst_func', 'r')
inst_func = file_inst_func.readlines()
for k in range(len(inst_func) - 1):
inst_func[k] = inst_func[k][:-1]
file_inst_func.close()
while True:
func = ['help', 'list func', 'locate', 'start', 'user', 'setting']
command = input('Введите команду: ')
if command.find('help') == 0:
if len(command) == 4:
print('Справка по базовым командам системы "Чаральз":')
print('help - выводит справку по базовым командам')
print('func list - вывод список доступных на данной ветке функций')
print('locate - выводит вашу позицию в дереве команд')
print('start F - запускает функцию F')
print('user info - выводит информацию о сессии')
print('user editor - запускает редактор информации о пользователе')
print('setting info - выводит базовые параметры')
print('setting editor - запускает редактор базовых параметров')
print('stop (extra) - останавливает действующую функцию. extra - останавливает всю систему.')
elif command.find('locate') == 0:
print('Вы находитесь на корневой ветке всей системы "Чарльз".')
elif command.find('start') == 0:
if command[6:] in inst_func:
basic_math = importlib.import_module(command[6:])
print(eval(command[:6] + '.main()'))
else:
print('Данная функция не обнаружена. Пожалуйста, проверьте список установленных функций с помощью "func list".')
elif command.find('func') == 0:
if command.find('list') == 5:
print('Доступные функции:', func)
elif command.find('install') == 5:
print('Установленные функции:', inst_func)
else:
print('Неизвестный аргумент для команды "func".')
print('Спасибо за использование системы "Чарльз". Всего хорошего,', login + '.')
basic-math:
def sqrt(number, **kwargs):
if kwargs.get('precession', False):
return round(number ** kwargs.get('degree', 2), kwargs['precession'])
else:
return number ** (1 / kwargs.get('degree', 2))
def main():
func = ['help', 'func', 'start', 'stop']
print('Добро пожаловать в "Базовую математику"!')
while True:
command = input('Введите команду (basic-math): ')
if command.split(' ')[0] in func:
if command.find('help') == 0:
print('Документация по basic-math:')
elif command.find('start') == 0:
eval(command[6:])
elif command.find('func list') == 0:
print('Список функций basic-math:')
print('sqrt(number, **degree = 2, precession = None) - при "precession = None" вернёт "number ** (1 / degree)"')
elif command.find('stop') == 0:
return 'Спасибо за использование basic-math. Процесс завершён.'
else:
print('Команда не распознана.')
Как починить ошибку?
Источник: Stack Overflow на русском