Форум сайта python.su
Есть кортеж
def __init__(self,*arg):
self.arg=arg
как реализовать def __sub__(self, *n):
что бы создался новый кортеж с заданным количеством элементов!
Офлайн
Как то так…
class c(): def __init__(self, *args): self.args = args def __sub__(self, n): return c(self.args[:n]) if __name__ == '__main__': b = c(1, 2, 3, 4) d = b - 2 print(d.args)
Отредактировано Romissevd (Апрель 18, 2015 22:31:37)
Офлайн
Romissevd
А вот подскажите, в моем случае, у меня в кортеже есть композиция из разных фигур, мне надо чтоб когда я в итоге писала с-1 программа отнимала одну фигуру: Вот я сделала такой код:
class Composite(Shape): def __init__(self,*arg): self.arg=arg def __sub__(self, n): return Composite(self.arg[:4-n]) def draw(self): for i in self.arg: i.draw() colors=['blue','green','yellow','pink','red'] a=[ Triangle((0,-10),turtle.Turtle(),colors[random.randrange(0,5)], size=25), Circle((50,10),turtle.Turtle(),colors[random.randrange(0,5)], size=50), Triangle((-70,-30),turtle.Turtle(),colors[random.randrange(0,5)], size=60), Circle((150,30),turtle.Turtle(),colors[random.randrange(0,5)], size=75), ] c=Composite(*a) d = c-2 print(d.arg) c.draw()
Отредактировано skripka696 (Апрель 19, 2015 21:59:45)
Офлайн
skripka696
RomissevdА вот подскажите, в моем случае, у меня в кортеже есть композиция из разных фигур, мне надо чтоб когда я в итоге писала с-1 программа отнимала одну фигуру: Вот я сделала такой код:
c=Composite(*a) d = c-2 z = Composite(*d) z.draw()
Офлайн
skripka696что именно вам нужно? список оставшихся фигур???
print(d.arg) - хранит правильное число фигур, но вывести я это не могу(((
skripka696что хранит d?z = Composite(*d)
Офлайн
Romissevd
нет, он как раз и хранит количество оставшихся фигур, мне надо было их нарисовать,
спасибо, у меня только что уже получилось это сделать!)
Офлайн