# Java method name colliding with Python reserved word

**URL:** <https://forum.inductiveautomation.com/t/java-method-name-colliding-with-python-reserved-word/112140>\
**Category:** Ignition\
**Created:** [November 12, 2025, 9:41pm UTC](https://forum.inductiveautomation.com/t/java-method-name-colliding-with-python-reserved-word/112140 "2025-11-12T21:41:31Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![justin.brzozoski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justin.brzozoski/32/13452_2.png) [@justin.brzozoski](https://forum.inductiveautomation.com/u/justin.brzozoski)\
**Post date:** [November 12, 2025, 9:41pm UTC](https://forum.inductiveautomation.com/t/java-method-name-colliding-with-python-reserved-word/112140/1 "2025-11-12T21:41:31Z")

</div>

Never really thought about this before now, but it just occurred to me while staring at some code that works with QualiityCode objects that my editor was highlighting the `is()` method differently because `is` is a Python reserved word.

How does this work in Jython without blowing up? In this one case I guess the interpreter can guess I mean the object method because of the way I’ve attached `.is()` to an object reference. But, this feels like a very slippery slope.

Is there some guidance in the Jython docs about how to handle when your Java objects have names which collide with reserved words?

EDIT: I just checked and mypy has a fit with that QualityCode.is() 😛

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [November 12, 2025, 9:49pm UTC](https://forum.inductiveautomation.com/t/java-method-name-colliding-with-python-reserved-word/112140/2 "2025-11-12T21:49:19Z")

</div>

Because it's an instance method you're fine, there's no collision. There's no way, to my knowledge (at least not without deliberate malice) to introduce something into the namespace that would collide - ultimately the special treatment of `is` is a function of the Python/Jython parser.

That said, the choice of `is` _is_ one that I'd say we'd make differently today - we don't write any code in Python, but we do write Kotlin code internally, which uses the `is` the same as Python instead of Java's longer `instanceof`, and there it does cause issues, so you have to escape it inline:

```kotlin
assertTrue(result.quality.`is`(QualityCode.Error_ExpressionEval))

```
