In Python I can refer to a class level variable with either
class Foo(object) :
class_var = ['same','for','all']
def __init__(self, instance_var) :
self.instance_var = instance_var
def print_words(self) :
# here I could use self.class_var
for w in Foo.class_var :
If you have only the one class and you only read the variable, you won't see a lot of difference.
If you take into account the possibility of subclasses that override
self.class_var will look in the current class first while
Foo.class_var will continue to refer concretely to that particular value. The best practice depends on your intent but since using classes in a language that makes them optional implies at least some interest in polymorphism,
self is probably more generally useful.
Also, if you want to set the value,
self.whatever = will set an instance variable and
Foo.whatever = will set the class variable which could then affect any other instance as well.