Hi,
I've been playing like mad with all sorts of python modules..but I still can't seem to get my head around the proper use of a class and self. The question stems from this code I made(snippet):
[snip misaligned code]
When posting to c.l.py it's greatly appreciated if you use spaces instead of tabs in your code. Many newsreaders strip out tabs.
The goal is to create a create_server object with the given parameters, and then call the method createUniversalConfig() without passing and parameters to it.
Sounds like you want to write:
def createUniversalConfig(self): '''''' self.parser.add_section('score') self.parser.set('score', 'domain', self.score_domain) self.parser.set('score', 'server', self.score_servername) self.parser.set('score', 'server', self.score_port)
Then you can do something like:
cs = create_server(... appropriate arguments ...) cs.createUniversalConfig()
However, this will only work if somewhere previously (probably __init__), you wrote assignment statements like:
self.score_domain = ... self.score_servername = ... self.score_port = ...
Looking at your code, I don't see that you've done this anywhere. Where should score_domain, score_servername and score_port be coming from? Are they the same as the 'domain', 'servername' and 'httpport' parameters to __init__? If so, you should write your code like:
def createUniversalConfig(self): '''''' self.parser.add_section('score') self.parser.set('score', 'domain', self.domain) self.parser.set('score', 'server', self.servername) self.parser.set('score', 'server', self.__httpport)
As an aside, there's probably no need to prefix your variables with double-underscores -- this causes name mangling that's generally not necessary in a "we're all consenting adults" language like Python.
Steve -- http://mail.python.org/mailman/listinfo/python-list