@ bot.message_handler () içindeki lamda işlevi telebot python'da düzgün çalışmıyor
Telebot kullanarak bir telgraf botu oluşturmak için python betiğinde aşağıdaki kod satırını uygulamaya çalıştım.
@bot.message_handler(func=lambda msg:True if msg.text.startswith('/test'))
def test_start(message):
msg=bot.send_message(message.chat.id,'This is feature is under developement')
Yukarıdaki kod bana bir sözdizimi hatası veriyor.
@bot.message_handler(func=lambda msg:True if msg.text.startswith('/test') else False)
def test_start(message):
msg=bot.send_message(message.chat.id,'This is feature is under developement')
Bu kod sözdizimi hatasını çözüyor, ancak yine de benim yapmasını istediğim şeyi yapmıyor. Bir kullanıcı '/ test bir metin' gönderdiğinde, bunu tanımlamak ve bundan sonra bazı eylemler yapmak istiyorum.
Python'da nispeten yeniyim ve bu benim telebot ve lambda işlevlerini ilk kez kullanıyorum. Lütfen bana yardım et
- 1. kodun neden bana sözdizimi hatası verdiğini tanımlama.
- Bu startswith ('/ test') nasıl doğru şekilde uygulanır? Şimdiden çok teşekkür ederim.
Yanıtlar
Üçlü operatörün izlenmesi gereken belirli bir sözdizimi olduğundan:
<value if True> if <condition> else <value if False>
İlk örnekte yaptığınız şey:
<value if True> if <condition>
Ayrıca yaptığın gibi yapmak zorunda değilsin
True if msg.text.startswith('/test') else False
.startswith()boolkendi kendine döner .
Dekoratörün ne yaptığı belli değil, ama neden fonksiyonun içini kontrol etmiyorsunuz?
@bot.message_handler
def test_start(message):
if msg.startswith('/test'):
msg=bot.send_message(message.chat.id,'This is feature is under developement')