У меня есть class Sentence
с волшебной функцией метода __getslice__
__getslice__, как вы называете его в функции
Я не понимая, как назвать эту функцию?
Я пытаюсь сделать нарезку слов. так, например, если строка "HELLO WORLD, james"
, и я нарезать его на [0: 1], я ожидаю получить "HELLO"
Я получаю вместо этой ошибки: 'method' object is not subscriptable
Вот мой код:
class Sentence:
def __init__(self, string):
self._string = string
def getSentence(self):
return self._string
def getWords(self):
return self._string.split()
def getLength(self):
return len(self._string)
def getNumWords(self):
return len(self._string.split())
def capitalize(self):
self._string = self._string.upper()
def punctation(self):
self._string = self._string + ", "
def __str__(self):
return self._string
def __getitem__(self, k):
return self._string[k]
def __len__(self):
return self._String
def __getslice__(self, start, end):
return self[max(0, start):max(0, end):]
def __add__(self, other):
self._string = self._string + other
return self._string
def __frequencyTable__(self, word):
count = 0
for w in self._string:
if self._string.has_key(word):
count = count + 1
return count
def __contains__(self, word):
return word in self._string
def functionTesting():
hippo = Sentence("hello world")
print(hippo.getSentence())
print(hippo.getLength())
print(hippo.getNumWords())
print(hippo.getWords())
hippo.capitalize()
hippo.punctation()
print(hippo.getSentence())
print("HELLO" in hippo) ##contains
print(hippo.__getitem__(0)) ##__getitem
print(hippo.__add__("james")) ##__add__
print(hippo.__getslice__[0:1])
functionTesting()
Также где я могу узнать больше о функциях магического метода? Как мне кажется, мне сложно называть функции больше, чем писать их