python 类中 protected 方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python 类中 protected 方法
Python类中Protected方法的使用
在Python中,类(Class)是构建各种模块和程序的基础。
类定义了对
象的属性和方法,且可以在实例化后实现逻辑和功能。
Python类中的
访问控制有三种:Public,Private和Protected。
Public方法是Python类中默认的访问方法。
Public方法可以通过类
的对象来访问和调用。
Private方法是类中的保护方法,只能在类中使用。
Protected方法是介于Public和Private方法之间的一个选项,
可以在类或者类子类中调用。
本文将详细解释Python中的Protected方法以及在类中使用它们的好处。
定义Protected方法
在定义Protected方法时,只需要在方法名前加一个下划线(_)。
例如:
class Person:
def __init__(self, name, age):
= name
self._age = age
def _displayAge(self):
print(self._age)
注意到Person类中的_displayAge()方法前面有一个下划线。
这意味
着该方法是Protected方法,只能在类内和类子类中被调用。
如果我
们尝试在类实例化后从外部调用这个方法,Python会抛出一个警告。
访问Protected方法
因为Protected方法并不是Python中默认的公共方法,所以需要通过特定的方式访问它们。
如果我们在类外部调用Protected方法,Python会抛出NameError的异常。
但是,如果我们在类的内部或者子类中调用Protected方法,Python 就会正常执行它。
class Student(Person):
def __init__(self, name, age, grade):
Person.__init__(self, name, age)
self.grade = grade
def displayStudent(self):
print("学生成绩:{}".format(self.grade))
self._displayAge()
在上面的例子中,我们创建了一个Student类,它继承了Person类。
Student类中定义了一个displayStudent()方法,和Person类中的_displayAge()方法配合使用。
在上面的代码中,我们使用了
self._displayAge()来调用Person类中的Protected方法。
由于我们在子类中调用这个Protected方法,所以程序成功地执行并输出了年龄。
Protected方法的好处
Protected方法虽然是Python中的非默认方法,但总体而言还是有一些好处的。
下面是使用Protected方法的几个好处:
1. Protected方法可让类中的方法可以被访问,但是对外界隐藏。
这样,我们就可以避免外部的类或者实例对类中的方法造成干扰。
2. Protected方法可以使得类的子类能够直接使用父类中的方法。
这样,我们就可以在子类中做出一些继承或者重载。
3. 使用Protected方法可以使代码更加模块化,从而使得整个项目更加清晰和易于维护。
结论:
在Python中,Protected方法是Python类中访问控制的一种选项。
Protected方法可以保护类中的方法免受外部干扰,同时允许子类可以使用父类的方法。
使用Protected方法可以使代码更加模块化,从而使得整个项目更加清晰和易于维护。