Beside performance and safety concerns even a kernel written in C needs to to jump down to native assembly for certain parts, so I don't believe this would/could have been done
As much as I love using Python for my day job, this is one place where it really doesn't fit. Learning OS development is actually a great reason to practice C.
I suppose there are systems that run "micropython" on the bare metal. But note that to work on Python itself often means working on or with CPython in C.
Technically there's nothing that forbids doing it. It would essentially boil down to port the Python interpreter / VM / Cython (pick your flavour) to run on the naked metal (hard, but not impossible; probably easier done with Lua), which would mostly involve memory management and all the low level stuff to get it running in the first place. Besides all the really hard stuff one had to solve, ironically mapping a pointer-less / array-less language like Python to a page-wise memory model would be rather easy; as soon as one does not have to care about that things like lists and dicts are contiguous in address space suddenly a lot of constraints you'd have in the Linux kernel would vanish.
I assume that the C and C++ is a must to learn to this, but is it or we can work with karnel using python.