Python中的受保护变量


在编程中,受保护变量的概念用于创建访问控制系统。在这个系统中,我们建立了一个访问控制的层次结构或级别。这个概念巩固了面向对象编程的基础。受保护变量的技术含义保持不变,但语法和行为在不同的编程语言之间可能有所不同。

Python遵循访问和操作属性和方法的常规逻辑,但访问控制的表示和执行程度略有不同。

理解Python中的受保护变量

Python中的受保护变量管理属性和方法的内部使用。这些变量建立了一种约定,驱动属性访问的逻辑。在Python中,我们可以使用“下划线(_)”关键字声明受保护变量。

这些关键字在类中声明方法或构造函数时传递。我们在变量前添加下划线关键字作为前缀,使其成为“受保护的”

语法

以下是声明受保护变量的语法。

def __init__(self, player_name):
   self._player_name = player_name

这里,“__init__()”方法初始化对象的属性,并在创建对象时调用。我们使用“self”关键字来访问和操作属性和方法。

我们创建受保护变量是为了告诉其他在代码库上工作的开发者以不同的方式处理代码的这一部分,因为它的访问是有限制的。让我们讨论一下在代码中实现受保护变量的重要性。

受保护变量的重要性

使用受保护变量的核心思想是将代码的某些部分声明为“受保护的”,即防止从外部环境直接访问变量。我们可以以细致的方式编写代码并促进数据封装。

  • 受保护变量帮助我们在类接口内创建不同类型的功能单元。每个功能单元可以有自己的实现规则。

  • 受保护变量提供受控的方法(getter和setter),可以访问类中隐藏或封装的信息。代码库变得强大且易于阅读,因为它允许开发者以不同的方式处理代码的不同部分。

  • 受保护变量还允许我们更改内部实现细节,而不会影响外部类/接口。使用受保护变量,我们可以提供自文档,可以解释与类及其数据交互的指令。

现在我们已经了解了Python中受保护变量的基本原理和重要性,让我们讨论一个示例并应用这些概念。

通过示例理解

我们将考虑一个示例,在这个示例中,我们将为玩家资料管理系统编写代码。我们将引入受保护变量来封装玩家信息,例如:玩家姓名、评分、球队名称薪水。我们还将使用装饰器(@property)来初始化getter方法。

这些方法将允许编码器从外部访问受保护变量,而装饰器将防止意外修改内部数据。受保护变量和装饰器的组合将帮助我们创建一个受控的接口。

我们还将创建一个方法,根据玩家的评分修改玩家的薪水。类对象将通过装饰器访问受保护变量,提供封装的薪水计算逻辑。

示例

以下是用受保护变量的示例。

class PlayerProfile:
   def __init__(self, player_name, team_name, Rating):
      self._player_name = player_name
      self._team_name = team_name
      self._Rating = Rating
      self._Salary = 0
   @property
   def player_name(self):
      return self._player_name
   @property
   def team_name(self):
      return self._team_name
   @property
   def Rating(self):
      return self._Rating
   @property
   def Salary(self):
      return self._Salary
   def ManagingSalary(self):
      self._Salary = self._Rating * 200000
OBJ = PlayerProfile("Manoj Shukla", "Wolves", 8)
print(f"The player name is: {OBJ.player_name}")
print(f"The team name is: {OBJ.team_name}")
print(f"The player Rating is: {OBJ.Rating}")
OBJ.ManagingSalary()
print(f"The player Salary is: {OBJ.Salary} USD")

输出

The player name is: Manoj Shukla
The team name is: Wolves
The player Rating is: 8
The player Salary is: 1600000 USD

与其他语言的比较

控制访问的基本思想在所有编程语言中都是相同的,但是我们实现逻辑的方式有所不同。

在大多数编程语言中,受保护变量只能在类层次结构内访问,但Python允许从类外部访问受保护变量。虽然不鼓励这样做,因为它违反了约定。

关键区别在于受保护变量的声明。在C++和Java中,我们显式地使用访问修饰符/说明符,而在Python中,我们使用下划线关键字来声明受保护变量。

结论

本文介绍了一个重要的编程概念,我们讨论了受保护变量的基本原理及其在Python中的实现。我们讨论了类层次结构的编程约定以及受保护变量如何帮助我们生成封装的代码。我们通过讨论一个示例并与其他编程语言进行比较,进一步增强了我们的理解。

更新于:2024年1月19日

731 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告