类的封装
实例化了类后,可以直接访问对象里的属性,也可以去修改对象里的属性
class Student:
# 类属性
def init(self, name,score):
# 实例属性
self.name = name
self.score = score
stu= Student('wang',22)
print(stu.name,stu.score)
stu.name ='zj'
print(stu.name,stu.score)
可以把属性的名称前加上两个下划线,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问(子类里也不能继承)
class Student(object):
def init(self, name, score):
self.__name = name #属性的名称前加上两个下划线,变为私有属性
self.__score = score
def get_name(self): #定义一个函数调用私有属性
return self.__name
def print_score(self):
print('%s: %s' % (self.__name, self.__score))
stu = Student('wang', 22)
python中没有绝对的私有属性
print(stu._Student__name,stu._Student__score) #直接调用了私有属性,实际上是将属性名称做了修改
stu._Student__name = '张三'
print(stu.get_name())