- 1

what is s._Spam__egg do ??

class Spam: __egg = 7 def print_egg(self): print(self.__egg) s = Spam() s.print_egg() print(s._Spam__egg) print(s.__egg) what is s._Spam__egg do ?? how it works

31st Jan 2017, 5:27 AM
Mayank Singh Soni
Mayank Singh Soni - avatar
1 ответ
0
__egg is a variable that is created when you create a new instance of the class Spam, in this case 's'. If a variable has two underscores before it (__) then it is considered highly private and cannot be called by the standard method of for example s.egg. So even though __egg is highly private, you can still (although not recommended) access that variable outside the class if you really need to. To do that you do a special method call with the instance of the class, the class name preceded by an underscore and then the private variable name. That is how you get s._Spam__egg which works when you try and print it out in the above statement, but printing s.__egg throws an error.
8th Jul 2017, 3:00 PM
Jim Tully
Jim Tully - avatar