Найти - Пользователи
Полная версия: кортеж
Начало » Центр помощи » кортеж
1
skripka696
Есть кортеж
def __init__(self,*arg):
self.arg=arg

как реализовать def __sub__(self, *n):
что бы создался новый кортеж с заданным количеством элементов!
Romissevd
Как то так…
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)
skripka696
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()
print(d.arg) - хранит правильное число фигур, но вывести я это не могу(((
подскажите пожалуйста как?
skripka696
skripka696
RomissevdА вот подскажите, в моем случае, у меня в кортеже есть композиция из разных фигур, мне надо чтоб когда я в итоге писала с-1 программа отнимала одну фигуру: Вот я сделала такой код:


Если делаю вот так:
c=Composite(*a)
d = c-2
z = Composite(*d)
z.draw()
то выдает такую ошибку:
Traceback (most recent call last):
File “/home/user/py/oop5.py”, line 72, in <module>
z = Composite(*d)
TypeError: type object argument after * must be a sequence, not Composite
Romissevd
skripka696
print(d.arg) - хранит правильное число фигур, но вывести я это не могу(((
что именно вам нужно? список оставшихся фигур???
skripka696
z = Composite(*d)
что хранит d?
skripka696
Romissevd
нет, он как раз и хранит количество оставшихся фигур, мне надо было их нарисовать,
спасибо, у меня только что уже получилось это сделать!)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB