Прикреплённый файл «arbuz.py»
Загрузка 1 #!/usr/bin/python
2 # coding: utf-8
3 '''
4 Реализовать собственные классы: арбуз и авоська. Реализовать операции
5
6 * арбуз + арбуз = авоська
7 * авоська + арбуз = авоська
8 * арбуз + авоська = авоська
9 * авоська + авоська = авоська
10 * авоська - арбуз = авоська
11 * достать арбуз из авоськи (arbuz = avoska.pop())
12 * просмотр арбузов в авоське (for arbuz in avoska:), без доставания их из авоськи
13 '''
14
15 class avoska():
16 ID=0
17 def __init__(self, *argp):
18 self.ID=avoska.ID
19 avoska.ID+=1
20 if len(argp)==1:
21 if hasattr(argp[0],"arbuzy"):
22 self.arbuzy=argp[0].arbuzy[:]
23 else:
24 self.arbuzy=list(*argp)
25 else:
26 self.arbuzy=list(argp)
27 def __add__(self, arg):
28 if hasattr(arg,"arbuzy"):
29 return avoska(self.arbuzy+arg.arbuzy)
30 else:
31 return avoska(self.arbuzy+[arg])
32 def __radd__(self, arg):
33 return self+arg
34 def __sub__(self, arg):
35 if arg in self.arbuzy:
36 new=self.arbuzy[:]
37 new.remove(arg)
38 return avoska(new)
39 else:
40 raise ValueError, "No {0} in avoska {1}".format(arg, self)
41 def pop(self):
42 return self.arbuzy.pop()
43 def __iter__(self):
44 for a in self.arbuzy: yield a
45 def __repr__(self):
46 return "Avoska-{0} {1}".format(self.ID,self.arbuzy)
47
48 class arbuz():
49 ID=0
50 def __init__(self):
51 self.ID=arbuz.ID
52 arbuz.ID+=1
53 def __add__(self, arg):
54 return avoska(self, arg)
55 def __repr__(self):
56 return "Arbuz-{0}".format(self.ID)
57
58
59 a,b,c,d=arbuz(),arbuz(),arbuz(),arbuz()
60
61 S=a+b
62 T=c+d
63 print S
64 print S+a
65 print T
66 print T-d
67 print S+T
68 print S+T
69 try:
70 print S-d
71 except ValueError as message:
72 print "{0}-{1} error: {2}".format(S,d,message)
73 print T.pop(),"/",T
74 print T.pop(),"/",T
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:30, 2.0 KB) [[attachment:arbuz.py]]
- [получить | показать] (2011-09-26 11:35:30, 1.9 KB) [[attachment:orddict.py]]
- [получить | показать] (2011-09-26 11:35:30, 2.4 KB) [[attachment:vector.py]]
Вам нельзя прикреплять файлы к этой странице.