#The diary of a Python learner
Date:08.03.2024
Focus:OOP中的访问限制方法
Key:通过self._name=name使其成为私有变量,避免直接访问;而类似_name_这类变量是特殊变量,外部可以访问。
Practice:
1.请把下面的Student
对象的gender
字段对外隐藏起来,用get_gender()
和set_gender()
代替,并检查参数有效性:
# -*- coding: utf-8 -*-
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):
self._gender=gender
# 测试:
bart = Student('Bart', 'male')
if bart.get_gender() != 'male':
print('测试失败!')
else:
bart.set_gender('female')
if bart.get_gender() != 'female':
print('测试失败!')
else:
print('测试成功!')
2.
# -*- coding: utf-8 -*-
import
Difficulty?
Addition:其实私有变量在内部变成了_student_name,在外部也可以直接访问,但这是有风险的。