python - Overwriting Class Methods to define Kwargs - Which is Pythonic? -
i'm working on abstraction layer database, , have super class defined similar this:
class test(): __init__(self, object): self.obj = object @classmethod def find_object(cls, **kwargs): # code search object put in parameter using kwargs. return cls(found_object) i break down superclass subclasses more specific objects represent.
class test_b(test): # subclass defining more specific version of test. now, each separate subclass of test has predefined search criteria. example, test_b needs object = 10, b = 30, c = "pie".
which more "pythonic"? using find_object method super class:
testb = test_b.find_object(a=10, b=30, c="pie") or overwrite find_object method expect a, b, , c parameters:
@classmethod def find_object(cls, a, b, c): return super().find_object(a=a, b=b, c=c) testb = test_b.find_object(10, 30, "pie")
first one. "explicit better implicit" - zen of python: line 2
Comments
Post a Comment