я создал несколько функцийфункции с другой функцией в качестве параметра
#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
Но проблема в том, что все они в основном те же
1. open file
2. write there some function result
3. close file
4. return data
Так что я хочу, чтобы создать некую универсальную функцию, которая будет имеют функцию как параметр, имя файла как параметр и параметр для функции. А затем функционировать как generateHeaderClassTemplate
будет что-то вроде
def generateHeaderClassTemplate(name):
return generateTemplate(parseHeaderTemplate, 'header.template', name)
В основном я хочу функцию как это
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
Но как заставить его работать, как в комментарии я написал - Если я не сдал name
- выполнить func(template.read())
и если я его пройду - выполните func(template.read(), name)
?
Так что мне нужно проверить наличие параметра 'name'? – lapots
Если вы хотите обработать случай, когда функция функции не указана в вызове функции, да, вы должны проверить 'имя'. – Callahan