ben şöyle bir başka daha genel sınıf yöntemini kullanarak bazı sınıf yöntemlerini tanımlamak için çalışıyorum i bu yöntemlerden herhangi birini çağırmak istediğinizdefunctools.partial
class RGB(object):
def __init__(self, red, blue, green):
super(RGB, self).__init__()
self._red = red
self._blue = blue
self._green = green
def _color(self, type):
return getattr(self, type)
red = functools.partial(_color, type='_red')
blue = functools.partial(_color, type='_blue')
green = functools.partial(_color, type='_green')
Ama olsun:
rgb = RGB(100, 192, 240)
print rgb.red()
TypeError: _color() takes exactly 2 arguments (1 given)
rgb.red(rgb)
çalışmalarından dolayı kendiliğinden _color
'a geçilmiyor.
Anladım. Teşekkürler. – Arjor
'__init__' içinde' self.red = functools.partial (RGB._color, self, 'red') 'nedir? Python2 de uyumludur. – dashesy
@dashesy: elbette, ancak bu nesnelerin her bir örneğe (bir bellek maliyeti) koyar, ayrıca bir alt sınıfın yerini almasını zorlaştırır. –