Yes, there are equivalents of % and # in pythonSCAD.
you can instead use
object.highlight()
object.background()
object.only()
Same functionality is available at
+object (unary op)
-object(unary op)
!object(unary op)
PythonSCAD does not need to use workarounds like Lazy Union, as you can decide yourself when to apply variables.
When "imitating" lazy Union for export you can simply export 2 different models into one file like
export({"mod1": model1, "mod2" : model2},"mydesign.3mf")
hope that helps.
ps: OpenSCAD devs don't support/like lazy Union either