1、封装为了隐藏属性或方法
2、封装的方法:1、改一个别人不知道的名字如 hidden_name = name 2、使用 ‘__’ ,如 __name python解释器会处理成
_类名__name 但是外部无法通过 __name 访问到,3、通常使用 _name 提示别人此处不希望被访问。
3、可以在类中定义 getter与setter 方法让别人访问,好处时在方法中可以1、控制属性是否只读,2、对输入的数据进行合法性验证,3、进行其他操作,如计算。
class Dog():
def __init__(self,name,age):
self.hidden_name = name
self.hidden_age = age
def speak(self):
print('大家好,我是%s'%self.hidden_name)
# get_name(self) 获取对象中指定的属性(get_属性名)
def get_name(self):
# get_name(self)用来获取对象的name属性
print('get_name执行了')
return self.hidden_name
# set_name(self,..): 用来设置对象中指定的属性值(set_属性名)
def set_name(self,name):
print('set_name执行了')
self.hidden_name = name
def get_age(self):
return self.hidden_age
def set_age(self,age):
if age > 0:
self.hidden_age = age
d = Dog('二哈',5)
# d.hidden_name = '德牧'
# 调用setter来修改name属性值
d.set_name('德牧')
d.set_age(8)
print(d.get_age())
# d.speak()