class User:
def __init__(self,name):
self.name = name
self.__firstname = 'None'
def get_firstname(self):
return self.__firstname
def __repr__(self):
return self.name + ' ' + self.__firstname
a = User('Pitt')
print('Name:',a.name)
print('1. a.get_firstname:',a.get_firstname())
a.__firstname = 'Brad'
print('2. a.get_firstname after change:',a.get_firstname())
print('3.',a.__firstname)
print(a)
Result:
Name: Pitt
1. a.get_firstname: None
2. a.get_firstname after change: None
3. Brad
Pitt None
Why the change of __firstname on object a did not take place when printing 2nd print but took place when printing a.__firstname?
Looks like the value of private variable changed if i use a.__firstname but really did not change ?