Я запускаю небольшой клиент-серверный тест на python, и клиент отправляет слово на сервер. Это слово является именем функции в python, которую нужно вызвать. Поэтому, когда отправляется слово «blink», он должен вызывать функцию «blink». (Пожалуйста, не то, что у них может быть несколько ключевых слов и функция, поэтому она должна быть какой-то формой вызова функции функции).Как использовать переменную как имя функции для вызова в python
while True:
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
if data == "blink":
print "MATCH!"
call(data())
print "received:",data
call(data())
print "break"
Слово MATCH напечатано, чтобы четко было получено слово. Как теперь использовать переменные данные для вызова функции blink?
я теперь получить
TypeError: 'str' object is not callable
Я могу понять ошибку .. ясно, что нужно сделать что-то с этой строкой .. любые идеи?
'данных()', вы пытаетесь вызвать строковый объект. Может быть, вы имеете в виду 'call (data)'? –
Вы можете использовать eval или exec для этого. См. Http://stackoverflow.com/questions/2220699/whats-the-difference-between-eval-exec-and-compile-in-python – Dan
@ Дан Нет Нет Нет Нет. Пожалуйста, не используйте 'eval' или' exec'. –