访问控制:
类型1(系统):
首部都是下划线的(类似“xxx”)变量,是特殊变量
类型2(保护):
可以被访问,但是,通常视为私有变量,不要随意访问 ——类似(“x”)
类型3(私有):
双下划线开头,私有变量,无法直接使用 ——(” _x”)
_ _age私有变量,很好的实现了隐藏,无论使用age访问,还是 _age访问,都无法访问到类内部 _ _age,实现了高级封装。
如果真的非常有必要要访问 _ _age, 访问的方法是 —— 对象. _类名 _ _age 非法不建议。
class person():
def __init__(self,name,age,grade):
print("=====开始======")
self.name=name
self.__age=age
self.grade=grade
def show(self):
print(self.name)
print(self.__age)
print(self.grade)
print("=====结束======")
def setage(self,age):
if age<0:
print("年龄不符合")
else:
self.__age=age
def getage(self): #get的作用是获得特定的参数(函数)
print("我的年龄是:",self.__age)
张三=person('张三',23,98)
张三.show()
张三.age=-25
张三.show()
张三.setage(36)
张三.show()
张三.getage()
运行结果:
=====开始======
张三
23
98
=====结束======
张三
23
98
=====结束======
张三
36
98
=====结束======
我的年龄是: 36 #获得的36 是上一步操作已经将23改成36了。
练习:
构造一个学生类,包含身高、体重属性,“学习”方法。
• 将身高体重设置为私有变量。
• 设置get方法、set方法,实现对上述私有变量的访问、设置。
class student():
def __init__(self,height,weight):
self.__height=height
self.weight=weight
def show(self):
print("身高:",self.__height)
print("体重:",self.weight)
def setheight(self,height):
if self.__height<0:
print("您的身高不对")
else:
self.__height=height
def getheight(self):
print("身高:",self.__height)
张三=student(1.75,160)
张三.show()
张三.age=1.80
张三.show()
张三.getheight()
张三.setheight(1.90)
张三.show()
运行结果:
身高: 1.75
体重: 160
身高: 1.75
体重: 160
身高: 1.75
身高: 1.9
体重: 160
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61415.html