Python类初始化– Python __init __()函数

时间:2020-02-23 14:42:30  来源:igfitidea点击:

Python类初始化

每当开始学习Python编程语言时,他们都会遇到诸如__init__之类的东西,通常他们并不完全了解。
在本程序中,我们将通过良好的示例尝试完全理解__init__的用法。

了解python类的初始化函数

让我们看一个简短的代码片段,看看我们想了解的内容:

class Student(object):

  def __init__(self, something):
      print("Init called.")
      self.something = something

  def method(self):
      return self.something 

my_object = Student('Jetty')

__init__方法有什么作用?为什么有必要?让我们找出答案。

python init方法有什么作用?

当创建一个新的python类实例时,将调用__init__方法,这被证明是一个非常好的地方,我们可以在创建对象后对其进行修改。

这意味着当我们创建类的新实例时,如下所示:

my_object = Student('Jetty')

在上面的代码片段中,当我们使用" Jetty"(实际上可以是任何东西)调用Student时,它将作为参数Jetty传递给__init__函数。
现在尝试运行此脚本:

__init__是构造函数吗?

其实,是。
__init__是一个oop构造。
__init__是类的构造函数。
就像上面提到的那样,一旦分配了对象的内存,就会调用__init__方法。
让我们看看上面片段中的操作:

def __init__(self, something):
  self.something = something

使用self很重要,因为如果您不这样做,请执行以下方法:

def __init__(self, something):
  _something = something

" something"参数将存储在堆栈中的变量中,并且一旦__init__方法超出范围时将被丢弃。

__init__如何与继承一起使用?

当我们有一个从超类继承的类时,__init__方法的工作方式相同。
让我们尝试演示在尝试初始化子类时会发生什么:

class User(object):
  def __init__(self, something):
      print("User Init called.")
      self.something = something

  def method(self):
      return self.something 

class Student(User):
  def __init__(self, something):
      User.__init__(self, something)
      print("Student Init called.")
      self.something = something

  def method(self):
      return self.something 

my_object = Student('Jetty')

在上面的代码中,当我们初始化Student对象时,将是运行上述程序时创建的输出:因此,在子类之前,调用了父类的init。
您可以通过修改父类或者子类的init调用顺序来控制它。