Python基础学习(类中的访问限制)
如果需要使类内部的属性不被访问,可以使用__name(双下划线加变量名的方式来命名),这样变量就成为一个私有变量,直接使用 实例名.__name 的方法是无法访问的。
practice:将student对象的gender对外隐藏,用get_gender()和set_gender()代替,并检查参数有效性
class Student(object):
def __init__(self, name, gender):
self.name = name
self.__gender = gender
def get_gender(self):
return self.__gender
def set_gender(self, gender):
if gender == 'male' or gender == 'female':
self.__gender = gender
else:
print('Wrong gender!')
student_A = Student('Tom', 'male')
print(student_A.get_gender())
male
student_A.set_gender('female')
print(student_A.get_gender())
female
student_A.set_gender('abc')
Wrong gender!
print(student_A._Student__gender)
female