Código Python:
Ver original#coding: utf-8
import random
#################################
#Movie
#Creamos la clase Movie
class Movie:
def __init__(self,title="emptyTitle",
director=["emptyDirector"],
cast = ["emptyCast"],
producer = ["emptyProducer"],
writer = ["emptyWriter"],
country = ["emptyCountry"],
language = ["emptyLanguage"],
year = "emptyYear",
genres = ["emptyGenres"],
votes = "emptyVotes",
rating = "emptyRating",
runtime = ["emptyRuntime"],
plot = ["emptyPlot"],
cover_url = "emptyCorver"):
self.title = title
self.director = director
self.cast = cast
self.producer = producer
self.writer = writer
self.country = country
self.language = language
self.year = year
self.genres = genres
self.votes = votes
self.rating = rating
self.runtime = runtime
self.plot = plot
self.cover_url = cover_url
def GetTitle(self):
return self.title
#################################
#función loadMovieList
def loadMovieList(filename):
peliculas = abrirarchivo(filename)
movieList = []
for peli in range(len(peliculas)):
pelicula = peliculas[peli].split("|")
p = Movie(pelicula[0],pelicula[1],pelicula[2],pelicula[3],pelicula[4],pelicula[5],pelicula[6],pelicula[7],pelicula[8],pelicula[9],pelicula[10],pelicula[11],pelicula[12],pelicula[13])
movieList.append(p)
movieList.sort()
return movieList
#################################
#Abrimos el archivo
def abrirarchivo(db):
file = open(db,"r")
peliculas = file.readlines()
file.close()
return peliculas
movieList = loadMovieList('peliculas100.dat')
#Reducimos la lista de peliculas a 21 elementos
movieList = movieList[0:20]
#################################
#Nodo
#Creamos la clase Nodo
class Node:
def __init__(self,data,root="none"):
data = data
self.root = "none"
#################################
#Stack
#Creamos la clase Stack
class Stack:
#El constructor de la clase Stack
def __init__(self):
tmp = 0
self.data = movieList
self.head = Node(tmp, len(self.data))
#Si la pila esta vacia, que apunte a None
def isEmpty(self, head):
head.data = "none"
#Imprimimos el titulo de la pelicula actual
def printStack(self):
#Meto el nodo actual en una variable temporal
tmp = self.head.data
#Guado en una variable a traves del metodo de la clase Movie, el titulo de la pelicula
titulo = tmp.GetTitle()
#Hago que la variable temporal, apunte a la siguiente pelicula
tmp = tmp.next
return titulo
#Añadimos un nodo
def push(self,node):
#Metemos el nuevo nodo en la variable temporal
tmp = newNode
#Hacemos que la variable temporal, su siguiente enlace sea el ultimo elemento de la pila
tmp.next = self.head.data
#Hacemos que head, apunte al nuevo nodo
head = tmp
return head.data
#Quitamos un nodo
def pop(self):
#Meto el ultimo nodo en una variable temporal
tmp = self.head.data
#Hago que head apunte al siguiente nodo
head = self.head.next
#Hago que el ultimo nodo apunte none
tmp.next = "none"
#Guardo el ultimo nodo, en otra variable
output = tmp.data
#Vacio la variable temporal
tmp = "none"
return output
#################################
#Queure
#Creamos la clase Queure
#class Queure:
# def __init__(self):
# def isEmpty(self):
# def printQ(self):
# def enqueue(self,node):
# def dequeue(self):
#################################
#Test de la clase Stack()
newStack = Stack()
newStack.printStack()
newNode = Node(movieList[0])
newStack.push(newNode)
newStack.printStack()
newStack.push(Node(movieList[1]))
newStack.printStack()
newStack.push(Node(movieList[2]))
newStack.printStack()
m1 = newStack.pop()
newStack.printStack()
m2 = newStack.pop()
newStack.printStack()
m3 = newStack.pop()
newStack.printStack()
m4 = newStack.pop()
newStack.printStack()
print m1.GetTitle()
print m2.GetTitle()
print m3.GetTitle()
##print m4.GetTitle() GUESS WHAT HAPPENS...
#################################
#Test de la clase Queure()
#newQ = Queue()
#newQ.printQ()
#newNode = Node(movieList[0])
#newQ.enqueue(newNode)
#newQ.printQ()
#newQ.enqueue(Node(movieList[1]))
#newQ.printQ()
#newQ.enqueue(Node(movieList[2]))
#newQ.printQ()
#m1 = newQ.dequeue()
#newQ.printQ()
#m2 = newQ.dequeue()
#newQ.printQ()
#m3 = newQ.dequeue()
#newQ.printQ()
#m4 = newQ.dequeue()
#newQ.printQ()
#print m1.GetTitle()
#print m2.GetTitle()
#print m3.GetTitle()
#print m4.GetTitle() GUESS WHAT HAPPENS...
Tienes muchos problemas con el uso del
self y también de
None.