I'll be honest, I have never figured out the _init thing in Godot. I just work around it by making a function called _setup with the arguments I need, and then I call _setup before calling add_child, so the data is there before _ready is called.
That said, if anyone knows how _init works, I am all ears! I'm sure there is a trick/technique that makes it work, I just have not stumbled upon it.