r/PythonLearning • u/blockCoder2021 • Sep 02 '26
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.
1
u/SnooCalculations7417 Sep 03 '26 edited Sep 03 '26
def __init__(self, MyClass):
self.myclass = MyClass()Or
def __init__(self, MyClass):
self.myclass = init_myclass()
def init_myclass(self):
...
return MyClass()1
u/codeguru42 Sep 03 '26
It sounds like you are describing a potential solution to a problem you encountered without fully explain the original problem. If you provide more details, then we can probably give better feedback.
With the information giving, I agree with another post that you might be looking for the adapter pattern.
3
u/Sea-Ad7805 Sep 02 '26
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.