Nim's compiler is insensitive to underscores, such that _x and x are the exact
same thing, unlike in other languages (it's also case-insensitive, with the
exception of the first letter).
There's ways to do what you're trying to do there, although I'm not the best
person to tell you what's the most sensible way. The following might work, and
maybe it could also be done with simple templates:
# keep properties private...
type
Euler* = object
x, y, z, a, b, c: float64
# ... but expose methods like these
method `x`*(this: Euler): float64 =
this.x # btw, you can use implicit "return" in this case
method `x=`*(this: Euler, x:float64) =
this.x = x
Run