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

Reply via email to