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

Python中是否有静态构造函数或静态初始化程序?

佴阳辉
2023-03-14
问题内容

Python中是否有诸如静态构造函数之类的东西?

如何在Python中实现静态构造函数?

这是我的代码…__init__当我这样调用App时不会触发。该__init__不是静态构造函数或静态初始化。

App.EmailQueue.DoSomething()

我必须这样称呼它,它每次都会实例化App类:

App().EmailQueue.DoSomething()

这是我的课:

class App:
    def __init__(self):
        self._mailQueue = EmailQueue()

    @property
    def EmailQueue(self):
        return self._mailQueue

__init__每次调用的问题是重新创建了App对象。我的“真实” App类很长。


问题答案:

提示:任何引用self都将需要实例化该类。您可以这样做:

class App:
    email_queue = EmailQueue()

App.email_queue.DoSomething()

但是,来吧,这似乎有很多不足。我使用SLaks,只需在类外部对其进行初始化。或者,您可以查看单例模式。



 类似资料:
  • 问题内容: 按照标准书,构造函数是用于初始化对象的一种特殊类型的函数。由于构造函数被定义为一个函数,并且内部类函数只能具有两种类型的静态或非静态类型。我怀疑是什么构造函数? 我的疑问是如果构造函数是静态方法,那么我们如何在构造函数内部频繁使用此方法 输出是否意味着构造函数是非静态的? 问题答案: 您的第二个例子很重要。引用在构造函数中可用,这意味着构造函数是针对某个对象(当前正在创建的对象)执行的

  • 问题内容: 表示变量只能在构造函数中分配一次。 表示它是一个类实例。 我不明白为什么禁止这样做。这些关键字在哪里互相干扰? 问题答案: 每次创建该类的实例时,都会调用一个构造函数。因此,上述代码意味着x的值将在每次创建实例时重新初始化。但是由于变量被声明为final(和static),因此您只能这样做 但是,如果删除静态,则可以执行以下操作: 或这个:

  • 本文向大家介绍C#静态构造函数?相关面试题,主要包含被问及C#静态构造函数?时的应答技巧和注意事项,需要的朋友参考一下 最先被执行的构造函数,且在一个类里只允许有一个无参的静态构造函数 执行顺序:静态变量>静态构造函数>实例变量>实例构造函数  

  • 问题内容: 这是一段Java代码: 它如何编译?初始化后已执行变量“ ture”的声明。据我所知,静态块和字段已经按照它们出现的顺序执行了。 现在,为什么实例块中的值9已被打印3次?顺便说一句,该类的实例已创建了3次。那不是功课,我正在学习Java进行认证。 问题答案: 关于第一个问题,静态块确实按照它们出现的顺序进行处理,但是在处理静态块之前,先处理声明。声明作为类 准备工作 的一部分(JLS§

  • 问题内容: 我有2节课: Class A: Class B: I create a Main class which just creates new A: The output I get is: 如您所见,A的构造函数在其静态初始值设定项之前被调用。 我了解它与我创建的循环依赖关系有关,但我印象中静态初始化程序应始终在构造函数之前运行。 发生这种情况的原因是什么(技术上在Java实现中)? 是

  • 问题内容: 如标题所示,两者之间到底有什么区别 和 除了结构以外,还有什么重要区别吗? 问题答案: 对于您的示例,没有区别。但是如您所见, 只能接受一个表达式来初始化变量。但是,在静态初始化器(JLS 8.7)中,可以执行任意数量的语句。例如,可以这样做: 对于您的示例,显然不需要这样做,但是变量的初始化可能不仅仅使用表达式,甚至可能包含许多语句,因此Java制作了静态初始化器。