in reply to Passing object attributes around

Set them.
After the OO idea methods are messages to the object.
So you tell the object with my_init() "please init yourself" - and that it should do.
In other OO enabled languages like C++ it is done the same - ok, someone could argue that returning an array is not easy in this language.

Update: I would call such a function _init(). The leading underscore indicates an internal function.