在attribu类中调用类方法

2024-04-16 18:57:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个包含彩色符号集合的类,我希望它像一个静态变量。但是我不能从class属性调用@classmethod,也就是说,下面给出了一个错误(NameError: name 'Pegs' is not defined):

class Color:
    RED = '\033[31m'

class Pegs:
    PEG = '\u25A0'
    PEGS = {
        'red' : Pegs.generate_peg_from_color(Color.RED)
    }

    @classmethod
    def generate_peg_from_color(cls, color):
        return ''.join([color, Pegs.PEG])

可以在类属性中调用函数吗?我应该使用静态方法修饰符而不是类方法吗?为什么会产生这个错误?在


Tags: from属性错误静态符号redgenerateclass
1条回答
网友
1楼 · 发布于 2024-04-16 18:57:07
class Pegs:

    PEG = '\u25A0'

    @classmethod
    def generate_peg_from_color(cls, color):
        return ''.join([color, cls.PEG])

    PEGS = {
        'red' : Pegs.generate_peg_from_color(Color.RED)
    }

您试图在定义函数之前调用它。现在你可以试试:

^{pr2}$

更新^

如果您添加这样的方法:

@classmethod
def meth(cls):
    cls.PEGS = {
        'red': cls.generate_peg_from_color(Color.RED)
    }

然后达到你的类属性?这能解决你的问题吗?在

相关问题 更多 >