首页 > 新闻 > 如何在 Python 中使用 SELF

如何在 Python 中使用 SELF

2023-01-06 小编

经验丰富的程序员一致认为,阅读高质量的代码示例会影响您学习 Python 的速度和效率。在旅程开始时,您可能会遇到 SELF 的方法。

在咖啡店使用 python SELF 函数的人

在这篇文章中,你将了解 Python 中的 SELF 参数。这包括使用它的原因、定义和变量初始化。然后,您将看到如何使用 SELF。

立即下载: Python 简介 [免费指南]

更具体地说,我们将介绍:

  • Python 中的 SELF 是什么?
  • Python 中的实例和类方法是什么?
  • 何时在 Python 中使用 self
  • Python 自我在行动

让我们开始吧。

 

 

self 参数不必命名为“self”,因为您可以使用任何其他名称来调用它。但是,self 参数必须始终是任何类函数的第一个参数,无论选择的名称如何。因此,您可以使用“我的”或“我们的”或其他任何东西来代替自己。

class Address:
  def __init__(mine, street, number):
    mine.street = street
    mine.number = number

  def myfunc(abc):
    print("My Address is " + abc.street)p1 = Address("Albert Street", 20)p1.myfunc()

尽管有上述定义,但我们明白 SELF 的真正含义仍然模糊不清。要彻底理解 SELF 是什么,你需要了解两个基本的 Python 思想:实例方法和类方法。

什么是 Python 中的 self?SELF 表示类的实例。此关键字允许您访问已定义类的变量、属性和方法。

 

Python 中的实例和类方法是什么?

在学习 Python 时,您可能遇到过术语“实例方法”。它们是编写 Python 代码的基本构建块之一。

这些方法可以访问类的实例,并用于读取或写入实例属性。理解它们将有助于你理解 Python 中的 SELF 是什么。

创建实例方法的第一步是创建 Python 类。您可以使用“类”关键字来执行此操作。

创建类后,可以使用与定义函数类似的语法在类中定义实例方法。

让我们调用我们的类 Fruit 并在其中创建一个实例方法。

class Fruits:
 def _init_(self,type,color):
  self.type = type
  self.color =color
 def describe(self):
  print("This fruit is a {} {}".format(self.color. self.type))

以下是上面代码中的逻辑步骤。

  • 首先,我们定义一个名为 Fruit 的类。
  • 接下来,我们添加了类构造函数 (_init_)。此类构造函数允许我们创建具有两个属性(即颜色和类型)的 Fruit 实例。
  • 最后,我们定义一个实例方法(描述)。

实例方法的第一个参数必须为 SELF。此参数是调用实例方法的类的实例。

因此,SELF 是一个类(或对象)的实例,我们已经在 Fruit 类的两个方法中使用它。

首先,我们在 _init_() 方法中使用它。它在此处用于更新类实例的状态。

其次,我们在 describe() 方法中使用它。这里使用它来读取属性类型和颜色的值,以便我们得到一个 print 语句。换句话说,它读取对象的状态。

 

何时在 Python 中使用 self

现在我们知道 python 中的 self 是什么意思了,什么时候应该使用 self?

每当用Python制作一个类时,编码人员都需要有一种访问该类的属性和方法的方法的方法。其他编程语言分配了固定语法来引用这些属性和方法。例如,C++语言使用“this”语法。

另一方面,Python 使用 SELF 作为表示类实例的方法的第一个参数。除此之外,SELF 还可以表示类中的变量字段。

让我们考虑一个例子。

class MyNamedef _init_(self, Nathan):self.name = Nathan
def my_name(self):return self.name

Self 是 MyName 类的名称变量。因此,如果方法中存在变量,则 SELF 将不起作用。

因此,在定义实例方法时应使用 SELF,因为它在调用该方法时会自动作为第一个参数传递。

从实例方法内部引用类属性时,还应在 Python 中使用 self。

当您从其他实例方法引用实例方法时,SELF 也会派上用场。

Python 自我在行动

请考虑以下代码:

class DemoClass:
    def sample_method():
        print ("This is the demo method")       print(dir(DemoClass))

“Def”有一个属性并保存一个函数。当函数在类中定义时,它被称为方法

因此,在上面的例子中,“def sample_method”“sample_method”的内容添加到 DemoClass 类中。

当我们运行代码时,我们得到 DemoClass 所有成员的输出。方法“sample_method”也包括在内。

Python self 关键字, python self method

现在让我们考虑一段类似的代码,尽管略有不同。

class DemoClass:
    def sample_method():
        print ("This is the demo method")the_object=DemoClassprint(dir(the_object))

代码具有具有相同方法的相同类。但是,我们现在在代码中有一个用“the_object”表示的构造函数程序语句。

运行代码会给出相同的结果,因为“the_object”仍然基于“DemoClass”类。但是,“sample_method”现在是名称“the_object”指向的对象的方法。

蟒蛇自我,代码

到目前为止,你关注了吗?很好,因为事情即将变得有趣。

让我们进一步修改我们的代码。

class DemoClass:
    def sample_method():
        print ("This is the demo method")the_object=DemoClass()the_object.sample_method()

在这个例子中,我们有相同的类,“DemoClass”“sample_method”。 但是,最后一行现在具有所谓的点表示法。

最后一行代码是 the_object.sample_method()。在此代码行中,the_object是绑定到对象的名称。sample_method 是对象内方法的名称。因此,这行代码正在做的是它要求“打印”代码行执行。它向对象发送消息,其中对象是 DemoClass 的实例。

尽管代码看起来不错,并且我们希望看到打印的“这是演示方法”,但运行它实际上会导致错误消息,如下所示。

蟒蛇自我示例

Python 告诉我们“sample_method 需要 0 个位置参数,但给出了 1 个”。

好吧,我们当然没有在“def sample_method()”中放置任何参数,因为“()”是空的,所以这是正确的。但错误说,“给出了 1”。看看最后一行代码也表明 () 也是空的!如何解决此错误?

通过使用自我!

看看下面的代码模块。

class DemoClass:
    def sample_method(self):
        print ("This is the demo method")the_object=DemoClass()the_object.sample_method()

注意到任何更改了吗?好吧,我们已经将 SELF 传递到“sample_method”。现在运行程序不会返回任何错误,我们的代码运行完美!

蟒蛇自我示例

开始使用 Python Self

Python 中的 Self 是 Python 开发人员最常用的约定之一。尽管实际上可以使用任何其他单词而不是 SELF 作为第一个参数,但使用 SELF 可以提高代码的可读性。我们希望这篇文章能提高你对 Python 这一重要方面的理解。


*必填

您好,访客!有什么新鲜事想告诉大家?

点击按钮快速添加回复内容: 高兴 支持 激动 给力 加油 生气 路过 威武
发表
暂时还没评论,等你发挥!