Python在数据分析领域应用广泛吗?

2026-04-28 07:271阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1465个文字,预计阅读时间需要6分钟。

Python在数据分析领域应用广泛吗?

目录前言整理及其工作原理单前导下划线__双前导下划线__双前导和双后导下划线前言在Python中,双前导下划线(如`__`)被用于定义私有变量和方法。这些私有成员只能在被定义的类内部访问,不能从类的外部直接访问。

单前导下划线单前导下划线(如`_`)通常用于给变量或方法命名,以表示这是一个受保护的成员,可能会在类的子类中被重写。

双前导下划线双前导下划线(如`__`)定义的变量或方法在Python中被称为魔术方法或双下方法。这些方法在特定情况下被自动调用,如属性访问、字符串表示等。

Python在数据分析领域应用广泛吗?

双前导和双后导下划线双前导和双后导下划线(如`__name__`)是Python的特殊属性,用于存储特定信息,如模块名、类名等。

Python中私有实例变量在Python中,不存在只能在对象内部访问的私有实例变量。所有实例变量都是公开的,但可以通过双前导下划线命名约定来表示它们是私有的。这样做是为了避免名称冲突,而不是限制访问。

遵循一致性大多数Python代码和编码标准都遵循一致性原则,即代码风格和命名约定应该一致。这意味着如果使用了双前导下划线来表示私有成员,那么所有类似的成员都应该遵循相同的约定。

目录
  • 前言
  • 重整及其工作原理
  • _单前导下划线
  • __双前导下划线
  • 双前导和双尾下划线

前言

Python 中,不存在只能在对象内部访问的“私有”实例变量。然而,大多数 Python 代码和编码器都遵循一个约定,即以下划线为前缀的名称,例如_geek应被视为 API 或任何 Python 代码的非公共部分,无论它是函数还是方法,或数据成员。在经历这个过程时,我们还将尝试理解各种形式的尾随下划线的概念,例如,for _ in range(10),init(self)。

重整及其工作原理

在 Python 中,有一种叫做名称修饰的东西,这意味着对类私有成员的有效用例的支持有限,基本上是为了避免名称与子类定义的名称发生名称冲突。__geek 形式的任何标识符(至少两个前导下划线或最多一个尾随下划线)都将替换为 _classname__geek,其中 classname 是当前类名,前导下划线被去除。只要它出现在类的定义中,这种修饰就完成了。这有助于让子类覆盖方法而不破坏类内方法调用。
让我们看一下这个例子,并尝试找出这个下划线是如何工作的:

# 说明重整工作原理的 Python 代码 class Map: def __init__(self, iterate): self.list = [] self.__geek(iterate) def geek(self, iterate): for item in iterate: self.list.append(item) # 原始 geek() 方法的私有副本 __geek = geek class MapSubclass(Map): # 为 geek() 提供了新的签名,但不会破坏 __init__() def geek(self, key, value): for i in zip(keys, value): self.list.append(i)

修改规则的设计主要是为了避免事故,但仍然可以访问或修改被认为是私有的变量。这甚至在特殊情况下很有用,例如在调试器中。

_单前导下划线

因此,基本上方法、函数或数据成员开头的下划线意味着您不应该访问此方法,因为它不是 API 的一部分。

让我们看一下这段代码:

# 说明单下划线如何工作的 Python 代码 def _get_errors(self): if self._errors is None: self.full_clean() return self._errors errors = property(_get_errors)

该片段取自 Django 源代码 (django/forms/forms.py)。这表明错误是属性,也是 API 的一部分,但方法 _get_errors 是“私有的”,因此不应访问它。

__双前导下划线

一开始,两条下划线引起了很多混乱。这是关于语法而不是约定。双下划线将破坏类的属性名称,以避免类之间的属性名称冲突。

例如:

# 说明开头双下划线如何工作的 Python 代码 class Geek: def _single_method(self): pass def __double_method(self): # 用于重整 pass class Pyth(Geek): def __double_method(self): # 用于重整 pass

双前导和双尾下划线

还有另一种双前导和尾随下划线的情况。我们在使用特殊变量或方法(称为“魔术方法”)时遵循这一点,例如leninit。这些方法为名称提供了特殊的句法特征。例如,file表示 Python 文件的位置,eq在执行 a == b 表达式时执行。

例子:

# 说明双前导和双尾下划线工作的 Python 代码 class Geek: # '__init__' 用于初始化,这是一个特殊的方法 def __init__(self, ab): self.ab = ab # 自定义特殊方法。 尽量不要使用它 def __custom__(self): pass

到此这篇关于Python 变量教程私有变量详解的文章就介绍到这了,更多相关Python 私有变量内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计1465个文字,预计阅读时间需要6分钟。

Python在数据分析领域应用广泛吗?

目录前言整理及其工作原理单前导下划线__双前导下划线__双前导和双后导下划线前言在Python中,双前导下划线(如`__`)被用于定义私有变量和方法。这些私有成员只能在被定义的类内部访问,不能从类的外部直接访问。

单前导下划线单前导下划线(如`_`)通常用于给变量或方法命名,以表示这是一个受保护的成员,可能会在类的子类中被重写。

双前导下划线双前导下划线(如`__`)定义的变量或方法在Python中被称为魔术方法或双下方法。这些方法在特定情况下被自动调用,如属性访问、字符串表示等。

Python在数据分析领域应用广泛吗?

双前导和双后导下划线双前导和双后导下划线(如`__name__`)是Python的特殊属性,用于存储特定信息,如模块名、类名等。

Python中私有实例变量在Python中,不存在只能在对象内部访问的私有实例变量。所有实例变量都是公开的,但可以通过双前导下划线命名约定来表示它们是私有的。这样做是为了避免名称冲突,而不是限制访问。

遵循一致性大多数Python代码和编码标准都遵循一致性原则,即代码风格和命名约定应该一致。这意味着如果使用了双前导下划线来表示私有成员,那么所有类似的成员都应该遵循相同的约定。

目录
  • 前言
  • 重整及其工作原理
  • _单前导下划线
  • __双前导下划线
  • 双前导和双尾下划线

前言

Python 中,不存在只能在对象内部访问的“私有”实例变量。然而,大多数 Python 代码和编码器都遵循一个约定,即以下划线为前缀的名称,例如_geek应被视为 API 或任何 Python 代码的非公共部分,无论它是函数还是方法,或数据成员。在经历这个过程时,我们还将尝试理解各种形式的尾随下划线的概念,例如,for _ in range(10),init(self)。

重整及其工作原理

在 Python 中,有一种叫做名称修饰的东西,这意味着对类私有成员的有效用例的支持有限,基本上是为了避免名称与子类定义的名称发生名称冲突。__geek 形式的任何标识符(至少两个前导下划线或最多一个尾随下划线)都将替换为 _classname__geek,其中 classname 是当前类名,前导下划线被去除。只要它出现在类的定义中,这种修饰就完成了。这有助于让子类覆盖方法而不破坏类内方法调用。
让我们看一下这个例子,并尝试找出这个下划线是如何工作的:

# 说明重整工作原理的 Python 代码 class Map: def __init__(self, iterate): self.list = [] self.__geek(iterate) def geek(self, iterate): for item in iterate: self.list.append(item) # 原始 geek() 方法的私有副本 __geek = geek class MapSubclass(Map): # 为 geek() 提供了新的签名,但不会破坏 __init__() def geek(self, key, value): for i in zip(keys, value): self.list.append(i)

修改规则的设计主要是为了避免事故,但仍然可以访问或修改被认为是私有的变量。这甚至在特殊情况下很有用,例如在调试器中。

_单前导下划线

因此,基本上方法、函数或数据成员开头的下划线意味着您不应该访问此方法,因为它不是 API 的一部分。

让我们看一下这段代码:

# 说明单下划线如何工作的 Python 代码 def _get_errors(self): if self._errors is None: self.full_clean() return self._errors errors = property(_get_errors)

该片段取自 Django 源代码 (django/forms/forms.py)。这表明错误是属性,也是 API 的一部分,但方法 _get_errors 是“私有的”,因此不应访问它。

__双前导下划线

一开始,两条下划线引起了很多混乱。这是关于语法而不是约定。双下划线将破坏类的属性名称,以避免类之间的属性名称冲突。

例如:

# 说明开头双下划线如何工作的 Python 代码 class Geek: def _single_method(self): pass def __double_method(self): # 用于重整 pass class Pyth(Geek): def __double_method(self): # 用于重整 pass

双前导和双尾下划线

还有另一种双前导和尾随下划线的情况。我们在使用特殊变量或方法(称为“魔术方法”)时遵循这一点,例如leninit。这些方法为名称提供了特殊的句法特征。例如,file表示 Python 文件的位置,eq在执行 a == b 表达式时执行。

例子:

# 说明双前导和双尾下划线工作的 Python 代码 class Geek: # '__init__' 用于初始化,这是一个特殊的方法 def __init__(self, ab): self.ab = ab # 自定义特殊方法。 尽量不要使用它 def __custom__(self): pass

到此这篇关于Python 变量教程私有变量详解的文章就介绍到这了,更多相关Python 私有变量内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!