[Tutor] declare a variable inside a class

Alan Gauld alan.gauld at btinternet.com
Thu Feb 11 17:05:16 EST 2016


On 11/02/16 21:20, Peter Otten wrote:

>> defined within the formatter method, everything works, but when I pull it
>> out and put it in the upper level of the class, it gives me a traceback
>> that says the global variable xslt is not defined. Does that help?
> 
> You need to qualify the class attribute with self to access it from within a 
> method:

Or you could use the class name since it is a class attribute:

>>>> class MyClass:
> ...     xslt = "/path/to/file"
> ...     def some_method(self):
> ...         print(MyClass.xslt)

If you need the possibility of having different paths for
different instances you need to initialise it in
an __init__() method:

class MyClass:
   def __init__(self,path):
       self.xslt = path
   ...

instance1 = MyClass('/some/path/here')
instance2 = MyClass('/another/path/here')

The way you have it currently both instances share the same path.
But that may be what you want.


-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos




More information about the Tutor mailing list