Я всегда думал, так как операция добавления строки возможна по простой логике, возможно, деление должно быть таким.При делении на число оно должно делиться на эту длину.Может быть, это то, что вы ищете.
class MyString:
def __init__(self, string):
self.string = string
def __div__(self, div):
l = []
for i in range(0, len(self.string), div):
l.append(self.string[i:i+div])
return l
>>> m = MyString(s)
>>> m/3
['abc', 'bdb', 'fbf', 'bfb']
>>> m = MyString('abcd')
>>> m/3
['abc', 'd']
Если вы не хотите создавать совершенно новый класс, просто используйте эту функцию, которая переопределяет ядро приведенного выше кода,
>>> def string_divide(string, div):
l = []
for i in range(0, len(string), div):
l.append(string[i:i+div])
return l
>>> string_divide('abcdefghijklmnopqrstuvwxyz', 15)
['abcdefghijklmno', 'pqrstuvwxyz']