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")