Как лучше написать функцию соединения с БД?
Используйте ORM, например SQLAlchemy
Ну возьмите для примера какую нибудь ORM, например SQLALchemy - там везде передается connection а cursor уже получается в самой функции
https://github.com/sqlalchemy/sqlalchemy/blob/mast...
А вообще полезно было бы изучить какую нибудь ORM, раз вы пытаетесь ее родить самостоятельно.
https://habr.com/ru/post/207110/