1.python中__init__函数的理解

  • 在创建类的时候往往会用到__init__函数 这一类两边带有下划线的函数往往是私有函数,只能在该类的内部使用。
  • init 的本意就是初始化的意思,一般出现在程序创建类中的第一个函数 。例如:
  • python中init方法 python中init函数作用_python

  • 其实也可以不用初始化。比如:
  • python中init方法 python中init函数作用_构造方法_02

  • 这样的话,我们初始化的类中也会有一个name参数,但这个参数已经固定了赋值为“red”
  • 如果我们运用__init__函数,则声明了一个可以动态变化的参数name 例如:
  • python中init方法 python中init函数作用_构造方法_03

  • 结果就是"red2" ,当然,你也可以传递不同的参数。
  • 我的理解就是__init__函数在创建类的开始,初始化一些参数,给后续的一些函数调用,而不是规定一个固定的值,使之更加灵活。在后续的爬虫过程中,我们可以初始化一些关于URL的参数让后续的函数调用
    例如:
  • python中init方法 python中init函数作用_初始化_04

  • 在实例化类的时候传递一个tbname的参数,用来存放一个参数。
  • python中init方法 python中init函数作用_构造方法_05

  • 这里展示的是__init__函数里的参数在后续函数中的调用。

2. 2021年10月19日增加理解

先来一个例子:

class test01:
    def __init__(self, top):
        self.num = top
    def push(self):
        print('你好',self.num)

所有的类首先提供构造方法,构造方法定义了数据对象的创建方式,构造方法总是命名为__init__(即在 init 的前后分别有两个下划线),如上图中,形式参数包含2项,self是一个总是指向对象本身的特殊参数,它必须是第一 个形式参数。然而,在调用方法时,从来不需要提供相应的实际参数。构造方法中的 self.num 定义了test01 对象有一个叫作 num 的内部数据对象作为其状态的一部分。这个实际参数的值在初始时赋给了状态,使得新创建的 test01 对象能够知道其初始值。
要创建 test01类的实例,必须调用构造方法。使用类名并且传入状态的实际值就能完成调用(注意,不要直接调用__init__)。

a=test01(1)
a.push()

结果如下:

python中init方法 python中init函数作用_构造方法_06

————————————————