I've created several functions
#generate .h file template for class
def generateHeaderClassTemplate(name):
template = open('header.template', 'r')
code = parseHeaderTemplate(template.read(), name)
template.close()
return code
#generate .cpp file template for class
def generateImplClassTemplate(name):
template = open('class.template', 'r')
code = parseImplTemplate(template.read(), name)
template.close()
return code
#generate main.cpp file template
def generateMainTemplate():
template = open('main.template', 'r')
code = parseMainTemplate(template.read())
template.close()
return code
But the problem is that they are all basically the same
1. open file
2. write there some function result
3. close file
4. return data
So I want to create some universal function which will have function as parameter, filename as parameter and parameter for the function. And then function like generateHeaderClassTemplate will be something like
def generateHeaderClassTemplate(name):
return generateTemplate(parseHeaderTemplate, 'header.template', name)
Basically I want function like this
def generateTemplate(func, templateFile, name):
template = open(templateFile, 'r')
code = func(template.read(), name) #or code = func(template.read()) if name was not passed
template.close()
return code
But how to make it work as in comment I wrote - If I do not pass name - perform func(template.read()) and if I pass it - perform func(template.read(), name)?