如果没有调用类中的其他函数,如何只调用__init__?

时间:2018-04-20 15:10:08

标签: python

抱歉提前做了一个错误的解释 - 我已经为我的问题搜索了一个解决方案,但还没找到。基本上,我试图定义一个带有 init 的类,只有在调用类中没有函数时才会调用它。 例如:

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

      def otherFunc(self):
           print "yeet"

如果我打电话给ThisClass()我想打印“你好”,但如果我打电话给ThisClass().otherFunc()我想打印“yeet”但不打印“你好”。有谁知道如何帮忙?再次,抱歉给出了不好的解释,但我不确定如何做得更好。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

编辑:如果你想绝对地调用你班级中的__init__,你可以使用单例或类变量,但这可能是对错误问题的错误答案。就像@ Aren-Fey所说,这看起来像一个XY问题!