Importing and using class from .py into a custom scripted module

Slicer expects all .py files in a scripted module folder to be Slicer module, so you need to put all additional files into regular Python packages in subfolders. See Extension wizard module and its ExtensionWizardLib package as an example.

The only complication is that you need to implement dynamic reloading of custom packages, if you want to reload your module without restarting Slicer. See this post for details: Python scripted module development reload feature for multiple files - #4 by lassoan