I am trying call a child class method using parent class constructor.
class Configurator():
config_file = "" #variable which stores config file
input_response = "" #variable which stores input response json
def __init__(self,config_file, input_response):
self.config_file = config_file
self.input_response = input_response
config = ConfigParser.ConfigParser()
config.read('config.cfg')
if config.get('Configurator', 'ctool') == 'Chef':
Configurator.__initialize(self)
def __initialize(self):
open_input_response = open(self.input_response, 'r')
read_cloudprovider = json.load(open_input_response)
cloudprovider = read_cloudprovider['CloudProvider']
if cloudprovider == 'AWS':
print('Working Here')
obj = AWS()
obj.print_test(self)
class AWS(Configurator):
def print_test(self):
print('I am AWS Class')
def main():
configurator = Configurator('config.cfg', 'input_response.json')
if __name__ == '__main__':
main()
Error:
TypeError: __init__() takes exactly 3 arguments (1 given)
Why im getting an error, AWS has no orguments to take