Skip to main content

Posts

How to understand difference between _, __ and __xx__ in Python....?? 1) One underline in the beginning Python doesn't have real private methods, so one underline in the beginning of a method or attribute means you shouldn't access this method, because it's not part of the API. It's very common when using properties: class BaseForm(StrAndUnicode): ... def _get_errors(self): "Returns an ErrorDict for the data provided for the form" if self._errors is None: self.full_clean() return self._errors errors = property(_get_errors) This snippet was taken from django source code (django/forms/forms.py). This means errors  is a property, and it's part of the API, but the method this property calls, _get_errors , is "private", so you shouldn't access it. 2) Two underlines in the beginning This one causes a lot of confusion. It should  not  be used to mark a method as private, t...