What is static?
Function definitions that are prefaced by "static" have their scope limited. They can only be seen and used by functions in the same source file. You would do that when you have a function that has no value outside of the processing taking place in the current file, or you want to limit usage so that it can be modified in the future with less ramifications due to its limited scope.
What is xyz doing with static
In this specific case, xyz gets replaced with nothing, so it does nothing. In the general case, it would likely be modifying how the compiler generates this function, changing the "calling convention". That is, xyz would have some meaning to the compiler and is not part of the C language.
Why is there an asterisk in front of __my_getitem
It shows that the __my_getitem function returns a pointer to a myObject.
What is the difference between myObject* a and myObject *a (position of *)
Nothing, as the syntax is flexible.