Python 如果没有调用类中的其他函数,如何仅调用_uinit _uu?

Python 如果没有调用类中的其他函数,如何仅调用_uinit _uu?,python,Python,对不起,事先的解释不好-我已经为我的问题寻找了解决方案,但没有找到。基本上,我试图定义一个具有init的类,该类只有在类中没有函数被调用时才会被调用。 例如: class ThisClass(): def __init__(self): print "hello" def otherFunc(self): print "yeet" 如果我调用ThisClass()我希望它打印“hello”,但是如果我调用ThisClass

对不起,事先的解释不好-我已经为我的问题寻找了解决方案,但没有找到。基本上,我试图定义一个具有init的类,该类只有在类中没有函数被调用时才会被调用。 例如:

 class ThisClass():
      def __init__(self):
           print "hello"

      def otherFunc(self):
           print "yeet"

如果我调用
ThisClass()
我希望它打印“hello”,但是如果我调用
ThisClass().otherFunc()
我希望打印“yeet”,但不打印“hello”。有人知道怎么帮忙吗?再一次,很抱歉解释得不好,但我不确定如何使其更好。

您可以使用静态方法或类方法:

 class ThisClass():
      def __init__(self):
           print "hello"

      @staticmethod  # or @classmethod with `cls` as argument.
      def otherFunc():
           print "yeet"

ThisClass()  # hello
ThisClass.otherFunc() # yeet

编辑:如果您想绝对调用类中的
\uuuu init\uuu
,可以使用单例变量或类变量,但这可能是对错误问题的错误答案。就像@arenfey说的,这看起来像是一个XY问题

您描述了类的一种非常奇怪的用法,通常您创建实例,例如,
a=ThisClass()
将调用
ThisClass.\uuu init\uuuu()
并将打印
hello
,然后
a.otherFunc()
将只打印
yet
,这是不可能的,即使是,也将是糟糕的设计。这看起来像是一张照片。你想解决的X是什么?是的,不,不要。至少这是一种意想不到的、令人惊讶的行为,也是许多bug的来源。你可以创建一个。然后你可以调用
ThisClass.otherFunc()
。实际上不满足所述的要求,不是吗?我使用以下语句:
如果我调用ThisClass(),我希望它打印“hello”,但是如果我调用ThisClass().otherFunc(),我希望打印“yeet”,但不打印“hello”
Yeaaahhh…但是您没有启用调用
ThisClass()。otherFunc()
…这个问题有点不适定,所以答案是近似的。我认为他不想绝对地使用对
\uuuuu init\uuuu
的调用。这是可能的,但正如你所说,这是一个XY问题,最好不要有这个问题的答案:)(类变量、单例模式、元类等)