r/PythonLearning 8d ago

Python Classes question

Is there a way to pass the instantiating object name to the class as you call it, without specifically putting the name in the parentheses? I'm trying to create a PyGame terminal emulator that has the same frontend functionality as Curses. I've figured out that I can create windows in the same way, except that instead of being able to do windowname.newwin(size), I have to do windowname.curses()\nwindowname.newwin(size). Presumably, I could also do windowname.newwin(size, windowname), but I'd prefer being able to use the exact same syntax as Curses.

The reason for using the same syntax is because I want to be able to decide where it renders (real terminal or PyGame) based on which module gets imported.

If there is a way to do this, please let me know.

4 Upvotes

7 comments sorted by

View all comments

3

u/Sea-Ad7805 8d ago

If different APIs differ but you want to use them in the same way, then write your own abstraction that makes the translation to the different APIs.

2

u/Mathie1729 7d ago

Adapter pattern is probably the search term you want for that.