Is is possible to access the arguments which were passed to __init__, without explicitly having to store them?
e.g.
class thing(object):
def __init__(self, name, data):
pass # do something useful here
t = thing('test', [1,2,3,])
print t.__args__ # doesn't exist
>> ('test', [1,2,3])
The use-case for this is creating a super-class which can automatically store the arguments used to create an instance of a class derived from it, without having to pass all the arguments explicitly to the super’s __init__. Maybe there’s an easier way to do it!
No, you have to store them. Otherwise they are gone after
__init__()returns, as all local variables.If you don’t want to pass all arguments on explicitly, you can use
**kwargs: