代码改变世界

python 私有属性的作用

2020-10-31 21:35  清风软件测试开发  阅读(787)  评论(1)    收藏  举报

python 私有属性的作用

class Player():
    def __init__(self, name, power, skill):
        self.name = name
        self.power = power
        self.skill = skill

    def print_role(self):
        print(('%s: %s %s')%(self.name,self.power,self.skill))

    def updateName(self, new_name):
        self.name = new_name

user1 = Player('tom',100,'police')
user1.print_role()              #tom: 100 police

user1.updateName('jack')        # 可以更新名字
user1.print_role()              #jack: 100 police

user1.name = 'mark'             # 可以更新名字
user1.print_role()             #mark: 100 police

当属性变成私有属性之后,只能通过方法来更改属性值,避免了属性直接被强制修改

class Player():
    def __init__(self, name, power, skill):
        self.__name = name
        self.power = power
        self.skill = skill

    def print_role(self):
        print(('%s: %s %s')%(self.__name,self.power,self.skill))

    def updateName(self, new_name):
        self.__name = new_name

user1 = Player('tom',100,'police')
user1.print_role()            #tom: 100 police

user1.updateName('jack')      #可以更新名字
user1.print_role()            #jack: 100 police

user1.__name = 'lili'         #无法更新名字
user1.print_role()            #jack: 100 police

user1.name = 'mark'           #无法更新名字
user1.print_role()            #jack: 100 police

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

python 私有属性的作用