我创建了一个名为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()
?
答案 0 :(得分:3)
变量self
代表类对象的实例,此处为类Colors
。例如:
c = Colors()
c.a_method()
当我调用a_method()
时,考虑到c
被定义为:
a_method
。
def a_method(self):
"""A method that does something."""
pass
现在,在您的情况下,您很可能希望将red
,green
,blue
和alpha
属性简单地作为整数而不是元组:>
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
时,会得到未定义的错误。