class Student(object):
    def __init__(self,name,age,score):
        self.__name = name
        # name为有2个下划线,为私有变量,只允许内部访问,外部不能访问

        self.__age = age
        # age为有2个下划线,为私有变量,只允许内部访问,外部不能访问
        self.score = score
        # score为公有变量,外部可以直接访问
    def test(self):
        print(self.__name,self.__age,self.score)


    def get_name(self):
        return self.__name
    # 如果要想访问私有变量,可以定义一个类的方法,返回私有变量即可

    def get_age(self):
        return self.__age


    # 如果要设置私有变量的值,可以重新写一个方法
    def set_age(self,new_age):
        self.__age = new_age




s = Student("cui",24,58)

s.test()

# print(s.__name)
# 这样访问会报错,因为name是私有变量
# AttributeError: 'Student' object has no attribute '__name'

print(s.score)
# 公有变量,可以直接访问


print(s.get_age())
print(s.get_name())

s.set_age(78)
22
print(s.get_age())


# 我们通过下面的方法也可以在类的外部访问类的私有变量,但是一般不建议大家这么搞
print(s._Student__name,"222222222")

 

posted on 2019-05-06 17:06  bainianminguo  阅读(111)  评论(0)    收藏  举报