在Python中的类中定义该类的静态实例

2024-10-02 06:35:21 发布

您现在位置: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)

Tags: 方法selfreturnif定义objectinitdef

热门问题