I have a series of classes that I'll be registering as services to a higher level abstraction class. The high-level class will have a function that gets the lower level class based on init args, etc. Does this sound berserk? Also, what is this called? I call it factory function/class, but I really have no idea (which makes it harder to Google best practices).
Asked
Active
Viewed 413 times
1 Answers
2
It's called "metaclass programming". In recent versions of Python it's implemented by defining the __new__()
static method and returning an object of the appropriate type.
class C(object):
def __new__(cls, val):
if val == 5:
return 'five'
else:
return super(C, cls).__new__(cls)
c1 = C(3)
print c1
c2 = C(5)
print c2

Ignacio Vazquez-Abrams
- 776,304
- 153
- 1,341
- 1,358