flamesrock wrote:
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

Reply via email to