今天继续讲堆栈。 在之前过程化的方法创建堆栈中,我们定义了两个函数:push()和pop()。如何在面向对象的方法中,创建和使用它们呢? 在Python中,可以在类的内部创建这两个函数。创建的方法和前文中的构造器类似。当然,在创建它们之后,我们自己还有其他人需要调用这两个函数。(这一点和前文中介绍过隐藏在类中的列表不同。不是所有人都能访问隐藏在类中的列表。) 我们知道,类的私有(private)部分要用两个下划线开头。而对于公共(public)部分,则不使用两个下划线。事实上,Python对公共部分的规定是最多只能有一个下划线,没有下划线也可以。我们来看下面的程序。 class my_stack2: def __init__(self): self.__stack2_list = [] def push(self, val): self.__stack2_list.append(val) def pop(self): val = self.__stack2_list[-1] del self.__stack2_list[-1] return val stack2_object = my_stack2() stack2_object.push(3) stack2_object.push(2) stack2_object.push(1) print(stack2_object.pop()) print(stack2_object.pop()) print(stack2_object.pop()) 在my_stack2类之中,首先是构造器。接下来就是push()和pop()这两函数,它们都增加了self这个参数,而且放在第一个的位置上。 不知道这段程序大家看起来是不是似曾相识?为了说明问题并且方便对比,我们再看一次前文中过程化程序定义和使用堆栈的程序: my_