讲解今天的内容前,我们先来回顾下之前章节学过的访问限制内容。我们知道了:
- 形式为 “__x”的实例属性为私有属性,不能被外界访问;
- 形式为 “__x__”的实例属性可以被外界访问,但被称为特殊属性,不建议将普通属性如此定义;
- 形式为 “_x” 的实例属性可以被外部访问,但是按照习惯,他们不应该被外部访问。
- 形式为 “__x” 的类属性同样不能被外部访问。
虽然以上形式为 “__x” 的实例属性和类属性是私有属性,不能被外部访问,但他们是可以被类内的实例方法访问的,所以当外界需要使用到私有属性的值时,可以通过访问实例方法来取到私有属性的值。
这种使用私有属性对数据封装的方式,可以达到保护内部数据,且简化外部调用的难度。
接下来我们通过如何访问私有属性的途径,一起讲解如何定义实例方法。
例:类Person中设置私有变量__score, 通过get_score()方法访问私有变量,根据成绩分级‘A’, ‘B’, ‘C’。
>>>class Person(object):
>>> def __init__(self, name, score):
>>> self.name = name
>>> self.__score = score
>>> def get_score(self):
>>> if self.__score >= 90:
>>> return 'A'
>>> elif self.__score >= 60:
>>> return 'B'
>>> else:
>>> return 'C'
>>>per1 = Person('admin1', 89)
>>>per2 = Person('admin2', 98)
>>>per3 = Person('admin3', 56)
>>>print per1.get_score
B
在定义类方法时,参数内第一个一定是self参数,来指向调用该类方法的实例,其余参数即普通的参数。get_score()函数为类方法,所以可以访问到该类的私有属性__score,当外部实例需要访问类的私有属性时,都可通过调用get_score()方法来获取到其值。
在该函数中,我们也能了解到python中条件判断语句的使用方法:if…elif…else
欢迎大家与我一起交流学习,关注我的公众号:
版权声明:本文为yjysunshine原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。