-1

我正在查看以下 python3 代码:

class MyClass(MyAbstractClass):
      :
    def my_fun1(self, input1):
         :
        return result

然后在代码的其他部分,MyClass 的用法如下:

output = MyClass().my_fun1(input1)

我想知道是否MyClass().my_fun1(input1)隐式实例化 MyClass 的对象?或者这里的 MyClass() 被视为实用函数类?如果它是一个实用函数,为什么还要把它放在一个类中呢?或者它是一个静态类?但它my_fun1没有标记为静态函数?

对不起,我来自 C++/Java 背景,所以这对我来说有点奇怪......

非常感谢!

4

1 回答 1

0

调用MyClass().my_fun1(input1)首先实例化 MyClass 的对象(因为MyClass()调用构造函数),然后调用my_fun1函数。在 Python 中,没有静态类,但我们有静态方法和类方法。对于这些概念,您可以找到许多很好的参考资料,例如HEREHERE

如果在 中定义静态方法MyClass,则需要按以下方式调用它:

output = MyClass.my_static_method(input1)

请注意,没有()after MyClass,这意味着您没有创建对象(实例)。

于 2020-03-04T18:41:42.803 回答