# User object functions

**URL:** <https://forum.inductiveautomation.com/t/user-object-functions/28211>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [September 12, 2019, 3:13pm UTC](https://forum.inductiveautomation.com/t/user-object-functions/28211 "2019-09-12T15:13:33Z")\
**Posts on this page:** 1\
**Showing post:** 4

<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:** [September 12, 2019, 3:57pm UTC](https://forum.inductiveautomation.com/t/user-object-functions/28211/4 "2019-09-12T15:57:19Z")

</div>

Unfortunately, at some level (and it’s easy to do, so there’s no real way to tell you exactly when it will be) you “break out” of the expected areas where we’ve documented things and end up in the base Java classes that we’re using internally. Jython automatically wraps these up so they mostly seem like Python objects, so it’s hard to tell exactly when you get there.

What I generally recommend, if you’re encountering something unfamiliar and want to see what you can do with it:

1. Start with runtime inspection. Python’s builtin `dir()` function is already pretty powerful, and you can supercharge it with @pturmel’s **excellent** `introspect` module:  
[Finding all available methods from a component](http://forum.inductiveautomation.com/t/finding-all-available-methods-from-a-component/9670/8?u=pgriffith)
2. If that fails, try seeing what the class of the object is, via `type(<object>)`, then take that and search for it in the Javadocs for your version, linked from the [“SDK programmer’s guide”](https://docs.inductiveautomation.com/display/SE/Introduction), on the right hand side.

---

_[View the full topic](https://forum.inductiveautomation.com/t/user-object-functions/28211)._
