class stack:
def __init__(self)
def stacksize(self):
Size=len(self.stack)
Print ('size is', size)
返回 大小为4#假设列表的大小为4 没有
以及如何访问该堆栈中最上面的元素
答案 0 :(得分:0)
我不确定您发布的代码是否完整,但是您的 init 功能不完整。使用“ pass”来声明没有任何实际代码的函数。其次,stacksize返回None,因为您实际上没有返回任何东西。
class stack:
def __init__(self):
pass # Add this line of code
def stacksize(self):
Size=len(self.stack)
Print ('size is', size)
return size # Add this line of code to return the value.
答案 1 :(得分:0)
让我们详细介绍您的代码。
我注意到的第一件事是,您需要向所有在python中为空的块添加 pass 关键字。另外,您忘记了不使用颜色来打开块。因此,如果按原样运行代码,则会得到以下信息:
File "main.py", line 2 def __init__(self)
^
SyntaxError: invalid syntax
转到第二种方法,在打印方法(P)的第一个字母中,您注意到它是大写的。在编程中,命名约定很重要,因此 print()应该全部小写。让我们看一下第二种方法中标记的错误:
如上所述,请更正 print()。接下来,尺寸用绿色下划线标出。我建议您为代码提供一个整理程序,在这种情况下,按照惯例,变量应以小写字母开头。如果我们修复了这两件事,您的代码状态就是:
好的,很好,现在情况正在好转。但是,为什么自我下划线是红色的?该 self 的原因是将调用此类的此方法的当前实例上下文化。问题是尚未声明stack属性,为此,请将您的代码更改如下:
class stack:
def __init__(self):
self.stack = []
def stacksize(self):
size = len(self.stack)
print('size is', size)
请注意,我删除了pass,并为堆栈成员变量分配了一个空列表。当然,您将确定 stack 成员变量,在这种情况下,我只是将其添加为列表。
好吧,现在,最后一个问题是,为什么 size 为None?加上我添加的代码更改后,它现在应该返回零(0),因为堆栈列表为空,但是有一个列表。
按照惯例,类以大写字母开头。
最后,您如何访问堆栈的顶部元素?像这样:
此代码的上下文当然在类上下文之外,请注意,它没有 self。,但对于您的 self.stack 应该相同。
我希望这对朋友有帮助! :)