当前位置: 首页 > 面试题库 >

Python构造函数和__init__

左丘宜然
2023-03-14
问题内容

为什么构造函数确实称为“构造函数”?它们的目的是什么?它们与类中的方法有何不同?

另外,__init__一个班级中可以有更多人吗?我尝试了以下方法,有人可以解释一下结果吗?

>>> class test:
    def __init__(self):
        print "init 1"
    def __init__(self):
        print "init 2"

>>> s=test()
init 2

最后,是__init__运算符重载器吗?


问题答案:

Python中没有函数重载,这意味着您不能拥有名称相同但参数不同的多个函数。

在您的代码示例中,您没有 过载 __init__()。发生的是第二个定义将名称重新 绑定__init__到新方法,导致第一个方法不可访问。

至于关于构造函数的一般问题,维基百科是一个很好的起点。对于特定于Python的内容,我强烈推荐Python文档。



 类似资料:
  • 问题内容: 不知何故,在下面的Node类中,and变量在Node的所有实例之间共享。 有什么办法可以让我继续使用构造函数参数的默认值(在这种情况下为空列表),但要同时获取它们和拥有其自身的变量以及变量? 我正在使用python 3.1.2。 问题答案: 可变的默认参数通常不会执行您想要的操作。相反,请尝试以下操作:

  • 问题内容: 我开始学习JAXB,所以我的问题可能很愚蠢。现在我有了类,想要生成XML Schema。在执行此指令后,我得到了异常 IllegalAnnotationExceptions …没有无参数的默认构造函数。 是的 我的课程没有默认的无参数构造函数。太容易了 我有类与包可见的构造函数/ final方法和偏离路线的参数。我应该怎么做-创建一些特定的momemto / builder类或将我的构

  • 本文向大家介绍Python构造函数及解构函数介绍,包括了Python构造函数及解构函数介绍的使用技巧和注意事项,需要的朋友参考一下 python 有一个相应的特殊解构器(destructor)方法名为__del__()。然而,由于python具有垃圾对象回收机制(靠引用计数),这个函数要直到该实例对象所有的引用都被清除掉后才会被执行。python中的解构器是在实例释放前提供特殊处理功能方法,它们通

  • 类构造函数 类constructor是类的特殊成员函数,只要我们创建该类的新对象,就会执行该函数。 构造函数与类具有完全相同的名称,它根本没有任何返回类型,甚至无效。 构造函数对于为某些成员变量设置初始值非常有用。 下面的例子解释了构造函数的概念 - #include <iostream> using namespace std; class Line { public: voi

  • 类构造函数 类constructor是类的特殊成员函数,只要我们创建该类的新对象,就会执行该函数。 构造函数与类具有完全相同的名称,并且根本没有任何返回类型,甚至无效。 构造函数对于为某些成员变量设置初始值非常有用。 以下示例解释了构造函数的概念 - import std.stdio; class Line { public: void setLength( double l

  • 正如michaelpark所指出的,如果我们不想最终使用错误的构造函数,那么添加完美的转发构造函数可能会很棘手。 目前,我有一个类,它使用了一个完美的转发构造函数,因此,我需要显式声明4个构造函数: