Thomas Köllmann wrote:
Hi, everybody!
I'm teaching myself Python, and I have no experience in programming apart from some years of shell scripting. So, please bear with me.
These two funktions are part of an administrative script I've set myself as a first lesson, and, as you will see, they're practically the same, except for one variable. So I'd like to weld them together -- but I can't find out how to.
Pass the variable as an argument probably.
But because generally you wouldn't want to recompile the regexp (this should be done once), you could say:
# untested def makewriter (regexp_string): def writeFunc(ip, regex=re.compile(regexp_string)): confFile = open(networkConf, 'r') conf = confFile.readlines() confFile.close for line in conf: if regex.search(line): addressLine = line addressLineNum = conf.index(addressLine) address = string.split(addressLine, ' ') address[1] = ip + "\n" conf[addressLineNum] = string.join(address) confFile = open(networkConf, 'w') confFile.writelines(conf) confFile.close return writeFunc
writeIP=makewriter('(.*)address(.*)') writeMask=makewriter('(.*)netmask(.*)')
This is rather advanced python programming though, but it shows cool dynamic function creation features and it's never early to get into it;)
jfj
-- http://mail.python.org/mailman/listinfo/python-list