class Node(object): # self 当我们实例化一个对象的情况下,再去调用这个函数的时候,这个实例就是self
def __init__(self, data, next = None):
self.data = data
self.next = next
class Stack(object): #用到的模块更多
def __init__(self, top = None): # none 就是一个对象
self.top = top
def push(self,data):
#创建新的节点放到栈顶
self.top = Node(data, self.top)
def pop(self):
#拿出栈顶元素,原来的栈发生改变
if self.top is None:
return None
data = self.top.data
self.top = self.top.next
return data
def peek(self):
#查看栈顶元素,原来的栈不变
return self.top.data if self.top is not None else None
def isEmpty(self):
return self.peek() is None
if __name__ == "__main__": #别的模块调用这个模块下程序的入口
stack = Stack()
stack1 = stack.push(1)
stack1 = stack.push(2)
print stack.peek(), #查看栈顶元素
stack.pop()
print stack.peek()
#输出: 2 1
这个是python stack()的源代码,这里面出现了top,data,但是并没有声明对象的类型? Python中不声明对象类型,是可以用任何类型吗还是什么意思?