自变量到底能做什么?在这种情况下如何使用?

时间:2018-08-02 15:31:03

标签: python class self

我创建了一个名为Colors()的类,其中定义了一些列表。我有一个名为set_alpha()的方法,该方法必须在列表的索引3后面附加提供的参数。

这是代码块:

class Colors():
    self.red = (255, 0, 0)
    self.blue = (0, 0, 255)
    self.green = (0, 255, 0)
    def set_alpha(self, alpha):
        self[3] = alpha

我什至在输入之前就知道这是错误的,因为我不理解
self很好。它给出一个错误,指出self未定义。我想要我班级的结果是这样的-

当我这样做时

Colors.red.set_alpha(128)

我希望红色变成-

red = (255, 0, 0, 128)

请解释 编辑:现在我该如何解决我的问题?如何在类中的变量上使用方法set_alpha()

1 个答案:

答案 0 :(得分:3)

变量self代表类对象的实例,此处为类Colors。例如:

c = Colors()
c.a_method()

当我调用a_method()时,考虑到c被定义为:

,该方法的变量self为a_method
def a_method(self):
    """A method that does something."""
    pass

现在,在您的情况下,您很可能希望将redgreenbluealpha属性简单地作为整数而不是元组:

class Colors:
    def __init__(red, green, blue, alpha=255):
         self.red = red
         self.blue = blue
         self.green = green
         self.alpha = alpha

    def set_alpha(alpha):
         self.alpha = alpha

此外,在类级别没有定义变量self,因此当您编写self.red时,会得到未定义的错误。