python中__init__()括号里面的变量应该如何写,分别表示啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中__init__()括号里面的变量应该如何写,分别表示啥?相关的知识,希望对你有一定的参考价值。

举例 def __init__(self, parent):
wx.ScrolledWindow.__init__(self, parent, -1)
为什么有的时候__init__要申明(self,parent,id,title)有的时候就只用__init__(self),parent表示的是什么?

__init__(self)相当于其它语言中的构造函数,用于在实例的时候给当前类的实例成员初始化用的,那个self关键字用于引用该类当前本身这个实例用的,如果想在创建实例的时候,多做一些初始化值的操作,则可以在self后面多加一些参数!比如:
#类描述学生
class Student:
def __init__(self,name,age): #构造实例时将参数值传递给当前那个实例的成员
self.name=name
self.age=age

s = Student('tom',20) #此时执行的就是__init__(self,name,age)
print(s.name)
print(s.age)
------------------
tom
20
参考技术A

1、在class中,如果你使用了__init__(self),那么括号里面必须有一个self

这就和

__init__(self):
            self.name = name

之后的参数必须要用self一样的

2、在__init__(self) 括号里面其他的就是参数,和你平时的def af(id,title)一样的意思

参考技术B parent不过是一个参数罢了,在这里指的是父窗口
除了第一个参数self指的是类自身,其余都是初始化类时需要传入的参数
参考技术C __init__()方法是对象初始化方法,在对象实例化时自动调用,所以在初始化的时候需要给对象赋值等操作时,可以在此定义

Golang中的init函数

参考技术A

init函数在包中定义,通常用来

除了下面讨论的一些差异之外,init函数中可以放任何常规函数可以放的东西

要使用导入的包,需要先将包初始化,初始化及顺序问题由Golang的 running system 完成。

Go里面的一个包可以包含多个文件。分布在众多包中的众多文件,变量和init函数执行的顺序应该是什么样子呢?之前的 文章 提到了变量的初始化顺序。完成此操作后,需要决定文件 a.go 或 z.go 中的变量初始化谁更应该早执行。 这取决于传递给编译器的文件顺序。 如果 z.go 首先由构建系统传递,则 z.go 先执行,然后在 a.go 的再执行。 这同样适用于init 函数的触发。 语言规范建议始终使用相同的顺序并按字典顺序从包中传递文件名:

不过依赖文件名初始化顺序的程序十分罕见,让我们来看这样子的例子

运行后,程序会这样输出

init 函数不需要参数也不返回任何值。和main不同,标识符init未声明,所以不能被引用

在编译时,程序返回

同一个包或文件中可以有很多个init函数,在不同文件中定义的init函数如下按照字母顺序执行,同一个文件按声明顺序执行,举例

输出

init函数的最常见用途,就是用来给那些不能通过表达式初始化的变量初始化,如:

表达式中可不能使用for循环,所以通过init函数来解决这个问题

Go对于未使用的引用非常严格。有些场景,你导入一个包,只为了执行其中的init函数(如mysql的driver)。

以上是关于python中__init__()括号里面的变量应该如何写,分别表示啥?的主要内容,如果未能解决你的问题,请参考以下文章

Golang中的init函数

不明白变量如何在__init__.py中起作用

Python中self和__init__的含义与使用

python------Socket网略编程+动态导入模块

Python里面所有instance应该现在__init__里面预定义

Python怎么实现静态变量