Hücre adı verilen bir sınıfım var:Özel Python sınıflarında varsayılan yöntemleri geçersiz kılmanın kolay yolu?
class Cell:
def __init__(self, value, color, size):
self._value = value
self._color = color
self._size = size
# and other methods...
Cell._value
bir dize, tamsayı vb. (bu nesneyi ne kullanırsam kullanırım) depolar. Xzx54
>>> c1 = Cell(7, "blue", (5,10))
>>> c2 = Cell(8, "red", (10, 12))
>>> print c1 + c2
15
>>> c3 = Cell(["ab", "cd"], "yellow", (50, 50))
>>> print len(c3), c3
2 ['ab', 'cd']
# etc.
: <Cell object>._value
class Cell:
def __init__(self, value, color, size):
# ...
def __repr__(self):
return repr(self._value)
def __str__(self):
return str(self._value)
def __getitem__(self, key):
return self._value[key]
def __len__(self):
return len(self._value)
# etc.
class Cell:
def __init__(self, value, color, size):
# ...
def __repr__(self):
return repr(self._value)
def __str__(self):
return str(self._value)
def __getitem__(self, key):
return self._value[key]
def __len__(self):
return len(self._value)
# etc.
ama daha kolay bir yolu var mı?
Bir tam sayı, 'self._value', bir anahtarla dizine ekleme becerisine sahip midir? Ve hiç bir tamsayı uzunluğunu almayı denediniz mi? Ayrıca, bu muhtemelen cocmmunity wiki olmamalı: Kimse bu şekilde cevap vermek için puan alamıyor ve bize buradaki bazı noktaları seviyoruz. – aaronasterling
-1: Bu bir wiki olmamalı. –
@AaronMcSmooth 'self._value' herhangi bir veri türünü tutabilir, böylece tüm olası yöntemleri kullanmak istiyorum. –