I have written a code like this,and they are all works for me,but what is the difference? which is better?
class Demo1(object):
    def __init__(self):
        self.attr = self._make_attr()
    def _make_attr(self):
        #skip...
        return attr
class Demo2(object):
    def __init__(self):
        self.attr = self._make_attr()
    @staticmethod
    def _make_attr():
        #skip...
        return attr
 
     
     
    