**The driver namespace** Can add functions and properties to the driver namespace import bpy def func(a, b, c): return a * b * c m = 9.4443299912 bpy.app.driver_namespace["f"] = func bpy.app.driver_namespace["m"] = m Then in a driver can use an expression like `f(m, m, m)` Which can be typed directly into a field by preceding with a hash `#` character. [![enter image description here][1]][1] There are a number of functions and properties etc already defined to the namespace, a sample of python console output. >>> for k, v in bpy.app.driver_namespace.items(): ... k, v ... ('asin', <built-in function asin>) ('asinh', <built-in function asinh>) ('atan', <built-in function atan>) ... ('pi', 3.141592653589793) ('e', 2.718281828459045) ... ('f', <function func at 0x7f8f18d34c80>) ('m', 9.4443299912) ('frame', 1.0) Where `frame` is the `context.scene.frame_current`. EDIT: would like to see a "_sub expression_" driver variable type where you could do this for scalars, or using other defined variables. Fitting everything into the scripted expression can be a PITA. [1]: https://i.sstatic.net/lWzzB.png