Я разработчик плагинов jython/python bukkit, и я застрял здесь. Я всегда использовал == в таких случаях, как этот, и все работало идеально. В чем проблема? Вот код:Почему == не возвращает true в этом случае?
lastslot = event.getNewSlot()
iteminslot = event.getPlayer().getInventory().getItem(lastslot).getType()
print "Iteminslot: %s "%iteminslot
print "CurrentKey: %s"%currentKey
if clickable1 == "false":
log.info("clickable1 ok")
if iteminslot == currentKey:
log.info("iteminslot ok")
event.getPlayer().addPotionEffect(potion_effect)
Когда я запускаю код, я получаю процесс кода в «clickable1 нормально» регистратор, поэтому он прекращает проверку, если iteminslot == currentKey ... Но когда я распечатать Iteminslot и Currentkey, они такие же!
20:41:00 [INFO] Iteminslot: DIAMOND_SWORD
20:41:00 [INFO] CurrentKey: DIAMOND_SWORD
20:41:01 [INFO] clickable1 ok
Где я совершаю ошибки? Спасибо за чтение/ответ! :)
Возможно, у вас есть лишние пробелы, которые вы не замечаете. Кроме того, каков их тип? Любой объект может выбрать способ его печати. Одним из них может быть объект, который не является строкой, но печатается как один. – BrenBarn
Попробуйте напечатать версии 'repr'. –
Вы можете проверить пробелы, как и другие предложения, используя '% r' вместо'% s'. – agf