Здраувствуйте! Имееты три работы на Phyton. Не мои. Они сделаны. Помоготи плиз с комментариями, поясните что знаете.
№1.
from zope.interface import Interface
from zope.interface import Attribute
from zope.interface import implements
from zope.interface import implementedBy
from zope.interface import providedBy
#Наличие необходимых методов и атрибутов объекта теперь гарантируется наличием АБК (абстрактных базовых классов) среди предков класса
class ILifo(Interface):
data=Attribute(“Massiv”)
head=Attribute(“Golova”)
tail=Attribute(“Hvost”)
def add(self,number):
#appending element to
“”“add element ”“”
def deleteelement():
“”“del element ”“”
def editlast(NewAttribute):
“”“chandge element”“”
class Lifo(object):
implements(ILifo)
def __init__(self):
self.data={}
self.tail=0
for i in range(10):
self.data=i
self.head=i
self.head=0
def add(self,number):
if (self.head==len(self.data)-1)or(self.head<self.tail):
self.head=self.tail
self.tail=self.tail+1
else:
self.head=self.head+1
self.data=number
def editlast(self,NewNumber):
“EditLast”
def deleteelement(self):
if self.head<>self.tail:
self.data=0
if (self.head>self.tail):
self.head=self.head-1
else:
if self.head==0:
self.head=len(self.data)
else:
self.head=self.head-1
def test():
print “— Interface test routine for bufer”
h = Lifo()
assert ILifo.implementedBy(Lifo)==True
assert ILifo.providedBy(h)==True
assert ILifo.providedBy('')==False
for i in range(len(h.data)):
print h.data
print “———–”
h.add(123)
h.add(321)
h.add(661)
h.add(662)
h.add(663)
h.add(664)
h.add(665)
h.add(666)
h.add(13)
h.add(14)
for i in range(len(h.data)):
print h.data
print “all right”
if __name__ == “__main__”:
test()
№2.
import sys
from zope.interface import implements
from zope.component import adapts
from zope.component import getGlobalSiteManager
sys.path.append(u'G:\\')
from Zad2 import *
import Zad1
class AdaptInterface(object):
implements(IFile)
adapts(Zad1.ILifo)
def __init__(self, lifo):
self.Lifo = lifo
def getContent(self):
self.Lifo.GetItems()
def getSize(self):
self.Lifo.leng()
def append(self,text):
raise RuntimeError, “could not be implemented”
def getCTA(self):
self.Lifo.getContent()
def test_adapter():
#file=File('Zad1.py')#
lifo=Zad1.Lifo()
adapter=IFile(lifo, alternate=“none found”)
print adapter
print “test OK”
if __name__== “__main__”:
gsm = getGlobalSiteManager()
gsm.registerAdapter(AdaptInterface, name = ‘adapt’)
test_adapter()