Python __init__

Python __init__

如果你已经在面向对象编程中工作过,你可能会遇到init这个词很多次。 __init__是一个Python的方法。它类似于Java和C++等语言中的构造函数。 了解Python中的类和对象将使__init__方法变得易于理解。

这里有一些先决知识:

  • 类是一个有变量/属性和函数/方法声明的蓝图。要使用类,我们需要为创建的类创建对象。
  • 使用对象,我们可以调用类中的方法并访问声明的属性。
  • 每个对象可以在类中具有自己的属性值。我们可以在创建对象时将需要的值作为参数传递。

这是一个简单的类和对象的示例:

class planet:
    var1 = "Planet"
    var2 = "Solar system"
    def function (self):
        print ("I'm earth")
        print ("I'm a", self. var1, "in", self. var2)

earth = planet ()
print (earth. var1)
print (earth. var2)
earth. function ()

输出:

Python init

分析:

我们创建了一个名为planet的类。在这个类中:

  1. 我们声明了两个变量var1和var2。
  2. 我们创建了一个函数,其中打印了两个字符串,这两个字符串在类中声明的变量内。

现在,我们创建了一个名为 earth 的对象,并且在 不传递任何参数的情况下 访问了类中的两个变量和方法。

  • 我们创建的对象没有自己的变量。

现在,在类中self是什么意思?

当我们为类创建一个对象并调用函数时,self将被创建的对象替换。它就像一个对象的占位符。在我们创建的类中,我们有两个对于我们创建的所有对象都通用的变量。因此,即使我们用对象名调用变量,我们也会得到所有对象的相同值。

现在,让我们了解一下’__init__’能做什么?

  1. 我们上面讨论过,每个对象都可以有其类的属性的值。可以使用__init__方法实现此功能。
  2. 这是一个构造函数,允许类持有具有不同值的对象。
  3. 我们不需要像调用普通方法那样调用它。它类似于类内部的一个方法。它在为类创建对象时立即执行。

现在,让我们看一下上面的示例与__init__方法:

class planet:
    def __init__ (self, name, number):
        self. name = name
        self. number = number
    def function (self):
        print ("I am", self. name)
        print ("I am the", self. number, "planet in the solar system")

earth = planet ('earth', 3)
earth. function ()

输出:

Python init

理解:

  1. 我们在创建对象时传递了参数。
  2. 正如我们之前讨论的,当创建一个对象时:
  3. __init__方法会被执行。
  4. ‘self’ 会被替换为创建的对象。

当我们创建了对象 ‘earth’:

def __init__ (earth, 'earth', 3):
    earth. name = 'earth'
    earth. number = 3

这是__init__方法中的内部机制。

这样,earth()对象就可以拥有它的属性。

现在,如果我们创建另一个对象:

venus = planet ('venus', 2)
venus. function ()

Python init

因此,我们可以创建任意数量的对象,每个对象都可以为属性设置其值。

这是Python面向对象编程中__init__方法的功能。

让我们再看一个示例:

  • 我们可以从用户那里输入值,然后将它们作为属性传递给一个对象。
class Student:
    def __init__ (self, name, age, email):
        self. name = name
        self. age = age
        self. email = email
name = input ("Please enter the name of the student1: ")
age = int (input ("Please enter the age of the student1: "))
stud = Student (name, age, 'Jeevani@gmail.com')
name = input ("Please enter the name of the student2: ")
age = int (input ("Please enter the age of the student2: "))
stud2 = Student (name, age, 'Harini@gmail.com')
print ("Stud_1. name =", stud. name)
print ("Stud_2. name =", stud2. name)

输出:

Python init

理解:

在程序中,我们创建了一个名为“Student”的类,它有三个属性:name,age和email。使用self变量,我们在__init__方法中定义了这些属性。我们创建了两个对象stud和stud2。对于这两个对象,我们已经给出了email的值,并要求用户输入name和age属性的值,然后将这些值传递给对象。

注意:

  • 我们可以在一个类中创建任意数量的对象和属性和函数。但是, 一个类中只能有一个明确的__init__方法。
  • 即使我们编写了多个__init__方法,最新的方法将覆盖之前的__init__方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程