當前位置: 首頁>>代碼示例>>Python>>正文


Python LinkedList.get方法代碼示例

本文整理匯總了Python中LinkedList.LinkedList.get方法的典型用法代碼示例。如果您正苦於以下問題:Python LinkedList.get方法的具體用法?Python LinkedList.get怎麽用?Python LinkedList.get使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在LinkedList.LinkedList的用法示例。


在下文中一共展示了LinkedList.get方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: __init__

# 需要導入模塊: from LinkedList import LinkedList [as 別名]
# 或者: from LinkedList.LinkedList import get [as 別名]
class Proxy:

    def __init__(self):

        # Create hashtable and LinkedList object for caching
        self.cache = {}
        self.llist = LinkedList()
        self.blacklist = blacklist
        
        # Counters for usage reports
        self.hitcount = 0
        self.misscount = 0
        
        # Create a TCP/IP socket
        self.server = socket(AF_INET, SOCK_STREAM)
        self.server.setblocking(0)
        self.server.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

        # Parse command-line arguments to check for host, port
        arg = self.getargs()

        # Bind socket to host, port
        self.server.bind((arg[0], arg[1]))

        # Listen for incoming connections
        self.server.listen(200)

        # Sockets from which are ready to be read
        self.inputs = [ self.server ]

        # Sockets from which are ready to be written to
        self.outputs = []

        # Queues of content received from Internet to be sent to Browser
        self.content_queues = {}

    def getargs(self):
        parser = argparse.ArgumentParser(description='Caching Web Proxy. Default host is localhost, default port is 8080')
        parser.add_argument('-s', '--host', help = 'host')
        parser.add_argument('-p', '--port', help = 'port', type=int)
        args = parser.parse_args()

        # If not specified, default host, port are given
        host = 'localhost'
        port = 8080
        if args.host: host = args.host
        if args.port: port = args.port

        # Return tuple
        return host, port

    def on_accept(self, readsock):
        # A readable socket is ready to accept a connection and be read from
        clientsock, clientaddr = readsock.accept()
        clientsock.setblocking (0)
        self.inputs.append(clientsock)

        # Create a new entry in the hashtable for this client for data we want to send
        self.content_queues[clientsock] = Queue.Queue()

    def on_recv(self, readsock, content):
        # content variable is an http header, a huge blob of words
        # Snag URL from header, it's all we need
        url = content.split(' ')[1]
        
        print "Requesting: " + url + "\n"

        if url not in self.blacklist:

            # If data is in cache, do not rerequest
            if url in self.cache:
                print "Cache hit!"
                self.hitcount += 1
                cached_content = cache[url].data
                self.content_queues[readsock].put(cached_content)
            
                # Find the linked list node this url belongs to, and push it up to the front
                shift_node = self.llist.get(url)
                self.llist.push(shift_node)
        
            # If data is not in cache, request it
            else:
                print "Cache miss..."
            
                # Instead of using sockets to request data from remote server, we use urllib2 for simplicity and convenience
                response = urllib2.urlopen(url).read()
                self.content_queues[readsock].put(response)
            
                # Create and append a new node in the cache and linked list
                new_node = Node(key=url, data=response, size=sys.getsizeof(response))
                self.cache[url] = new_node
                self.llist.append(new_node)

            # Add socket to output channel so we can send it from our proxy to the browser
            if readsock not in self.outputs:
                self.outputs.append(readsock)
        else:
            print "That site has been blacklisted."

    def on_close(self, readsock):
#.........這裏部分代碼省略.........
開發者ID:eddief,項目名稱:hanami,代碼行數:103,代碼來源:hanami.py

示例2: list

# 需要導入模塊: from LinkedList import LinkedList [as 別名]
# 或者: from LinkedList.LinkedList import get [as 別名]
books.add(deceptionPoint)
books.add(theDavinciCode)
books.add(theMartian)

# Verify each book was added to end of list
print "Initial Set of Books"
print "--------------------------------------------------"
print books.toString()

# Push book to front of list
books.push(digitalFortress)

# Verify book was pushed to front of list
print "Pushed Book"
print "--------------------------------------------------"
print books.get(0).toString()

# Add book at index
books.addAtIndex(3, angelsAndDemons);

# Verify book was added to correct index
print "Set of Books"
print "--------------------------------------------------"
print books.toString()

# Remove first book from list (Digital Fortress)
books.remove(0)

# Verify book was removed
print "First Book"
print "--------------------------------------------------"
開發者ID:bpred754,項目名稱:AlgorithmsAndDataStructures,代碼行數:33,代碼來源:Driver.py

示例3: LinkedList

# 需要導入模塊: from LinkedList import LinkedList [as 別名]
# 或者: from LinkedList.LinkedList import get [as 別名]
#!/usr/bin/python

from LinkedList import LinkedList

pList = []
myList = LinkedList()

count = 0
while count < 10 :
	pList.append(count)
	myList.append(count)
	count += 1

count = 0
while count < len(pList) :
	print pList[count]
	print myList.get(count)
	count += 1

開發者ID:dkwasny,項目名稱:PythonStuff,代碼行數:20,代碼來源:Driver.py


注:本文中的LinkedList.LinkedList.get方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。