Проблема в данном случае в том, что переменная func_name на самом деле является строкой. Питон не может понять, что вы хотите вызвать функцию с этим именем, так как он воспринимает это как вызов метода на строке.
Чтобы корректно вызвать функцию, название которой вводится пользователем, вы можете использовать функцию globals(). Эта функция возвращает словарь глобальных переменных текущего пространства имен, и вы можете использовать его для вызова функции по имени:
```python
def test():
print("test")
func_name = input("Введите название функции: ")
globals()[func_name]()
```
Алтернативно, вы также можете использовать функцию locals(), если функция, которую вы хотите вызвать, определена в локальном пространстве имен.
```python
def test():
print("test")
func_name = input("Введите название функции: ")
locals()[func_name]()
```
Оба этих метода предполагают, что функция уже была определена к моменту вызова. Если это не так, то вам, видимо, придется использовать оператор exec или eval для выполнения кода на лету, но это гораздо более рискованно с точки зрения безопасности.