0
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 ?

Tom
  • 19
  • 2

0 Answers0