# -*- coding:utf-8 -*- #隐藏一个属性、不想让类的外部调用 #保护这个属性、不让这个属性随意被改变 #不想让子类继承 class Room: def __init__(self,name,length,width): self.name = name self.__length = length self.__width = width def area(self): return self.__length * self.__width nezha = Room('哪吒',6,3) print(nezha.area()) #------------------------------------------------- class Room: def __init__(self,name,length,width): self.__name = name self.__length = length self.__width = width def get_name(self): return self.__name def set_name(self,newName): if type(newName) is str and newName.isdigit() == False: self.__name = newName else: print('不合法的姓名') def area(self): return self.__length * self.__width nezha = Room('哪吒',6,3) print(nezha.area()) nezha.set_name('123') print(nezha.get_name()) #-------------------------------------------------- #父类的私有属性=不能被子类调用 class Foo: __key = '123' # _Foo__key class Son(Foo): print(Foo.__key) #子类不可以调用父类的私有属性 _Son__key # AttributeError: type object 'Foo' has no attribute '_Son__key'