Первый шаг работает мной (на python 3.7.2)
> python3 test.py test
hi im func1
hi im func2
hi im func3
Однако это запускается оператором run.runall()
. Какую версию Python вы запускаете? разве у вас нет другой переменной test
в вашем рабочем пространстве?
Во-вторых, решение, вдохновленное здесь , вы можете заставить отдельные методы класса работать следующим образом:
if __name__ == '__main__':
try:
run = test()
run.runall()
#globals()[sys.argv[1]]()
getattr(test(), sys.argv[1])()
except KeyError:
raise KeyError('Invalid Function Name Passed in Argument! refer the code for valid Name.')
результат:
> python3 test.py func1
hi im func1
hi im func2
hi im func3
hi im func1