首页 > 解决方案 > 在 Python 中的类中定义类的静态实例

问题描述

我在 Python 中遇到以下基本问题。我想在类本身中创建一个类的常量静态实例,以在类的方法中使用。

class MyClass(object):
    def __init__(self, i : int):
        self.i_c = i

    newinstance = MyClass(0)

    def method(self):
        if self == newinstance:
            return 'blaba'
        else:
            return self.i_c

当然在这个例子中,我可以在包含我的类的模块中单独定义实例,但是我不能在类的方法中使用它。

我不知道这是否可行,我只是不知道正确的语法,或者我不能这样做。

编辑:根据下面的评论,一种解决方法如下

class MyClass(object):
    def __init__(self, i : int):
        self.i_c = i

MyClass.newinstance = MyClass(0)

def func(thing):
    if thing == MyClass.newinstance:
        return 'blaba'
    else:
        return thing.i_c

这可行,但 func 现在不是 MyClass 类的方法。在我的情况下这并不是真正的问题,但我想我可能可以将 func 定义为 MyClass 的方法,我只是不知道如何。

好的,我明白了,最后感谢下面的评论。这有效

class MyClass(object):
    def __init__(self, i : int):
        self.i_c = i

    def method(self):
        if self == MyClass.newinstance:
            return 'blaba'
        else:
            return self.i_c

MyClass.newinstance = MyClass(0)

标签: pythonpython-class

解决方案


推荐阅读