Вызов функции в ООП
Мне нужно в методе check(), если пользователь введёт 1 - вызвать метод algorithms(), как это сделать?
исходный код:
class Logic:
def __init__(self):
pass
def check(self):
if question == variants[0]:
pass
def algorithms(self):
nums = [1, 7, 3, 4, 6, 2, 9, 8, 5] # сортировка выборкой
print('Было', nums)
for i in range(len(nums)):
lowest = i # первый эелемент примем за наименьший
for x in range(i+1, len(nums)):
if nums[x] < nums[lowest]:
lowest = x # нашли эелемент меньше в правом срезе
nums[i], nums[lowest] = nums[lowest], nums[i]
print('Стало', nums)
variants = ['Сортировка выборкой']
question = input('[1] Сортировка выборкой\nВведите номер пункта алгоритма: ')
runner = Logic()
runner.check()
runner.algorithms()
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так
class Logic:
def __init__(self):
super().__init__()
self.variants = ['Сортировка выборкой',]
def check(self):
question = input('[1] Сортировка выборкой\nВведите номер пункта алгоритма: ')
# if question == self.variants[0]:
if question == '1':
self.algorithms() # <----
def algorithms(self):
nums = [1, 7, 3, 4, 6, 2, 9, 8, 5] # сортировка выборкой
print('Было', nums)
for i in range(len(nums)):
lowest = i # первый эелемент примем за наименьший
for x in range(i+1, len(nums)):
if nums[x] < nums[lowest]:
lowest = x # нашли эелемент меньше в правом срезе
nums[i], nums[lowest] = nums[lowest], nums[i]
print('Стало', nums)
#variants = ['Сортировка выборкой']
#question = input('[1] Сортировка выборкой\nВведите номер пункта алгоритма: ')
runner = Logic()
runner.check()
#runner.algorithms()
Автор решения: 6 crimes
→ Ссылка
Решение вашей проблемы:
def check(self):
if int(question) == 1:
self.algorithms()
Вызов функций внутри класса происходит следующим образом:
self.func_name(args)