Unbound variable in python

I am trying to make a toy singleton in python to learn the ins and outs of the language and am running into a problem with how python works. I declare the class like this

class ErrorLogger: # Singleton that provides logging to a file instance = None def getInstance(): # Our singleton "constructor" if instance is None : print "foo"

when I call it with

log = ErrorLogger.getInstance()

I get

 File "/home/paul/projects/peachpit/src/ErrorLogger.py", line 7, in getInstance if instance is None : UnboundLocalError: local variable 'instance' referenced before assignment

What is going on here, shouldn't instance be statically assigned Null? What would be the right way to do this?

1

1 Answer

You have to call it with ErrorLogger prefix as it is a static variable.

class ErrorLogger: # Singleton that provides logging to a file instance = None @staticmethod def getInstance(): # Our singleton "constructor" if ErrorLogger.instance is None : print "foo"
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like