改变类的私有变量的值有2种方法:

  1. 间接:为这个私有变量提供一个操作的方法,如:def get_score(self, score)

  2. 直接:实例名._类名__私有变量名 = 值, 如:f._Student__score = 10


  1. 间接

#!/usr/bin/python
# -*- coding: utf-8 -*-
class Student(object):
    def __init__(self,name, score):
        self.__name = name
        self.__score = score
        
    def set_score(self, score):
        if score < 11:
            print "false"
            return False
        self.__score = score
        return self.__score
        
    def get_score(self):
        return self.__score
        
f = Student('hah', 11)
print f.get_score()
f.set_score(12)
print f.get_score()

运行结果:

11
12


2.直接

#!/usr/bin/python
# -*- coding: utf-8 -*-
class Student(object):
    def __init__(self,name, score):
        self.__name = name
        self.__score = score
        
    def set_score(self, score):
        if score < 11:
            print "false"
            return False
        self.__score = score
        return self.__score
        
    def get_score(self):
        return self.__score
        
f._Student__score=13
print f.get_score()

运行结果:

13