Python 为什么我的stacksize函数返回NONE
它回来了 大小为4#假设列表大小为4 没有Python 为什么我的stacksize函数返回NONE,python,python-2.7,stack,Python,Python 2.7,Stack,它回来了 大小为4#假设列表大小为4 没有 如何访问堆栈中最顶层的元素我不确定您发布的代码是否完整,但您的init函数不完整。使用“pass”来声明没有任何实际代码的函数。其次,stacksize不返回任何内容,因为您实际上没有返回任何内容 class stack: def __init__(self) def stacksize(self): Size=len(self.stack) Print ('size is', size) 让我们详细讨论一下您的
如何访问堆栈中最顶层的元素我不确定您发布的代码是否完整,但您的init函数不完整。使用“pass”来声明没有任何实际代码的函数。其次,stacksize不返回任何内容,因为您实际上没有返回任何内容
class stack:
def __init__(self)
def stacksize(self):
Size=len(self.stack)
Print ('size is', size)
让我们详细讨论一下您的代码 我注意到的第一件事是,您需要将pass关键字添加到python中的任何空块中。此外,您忘记了通过不使用颜色打开块。因此,如果我按原样运行代码,我会得到以下结果:
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.
转到第二种方法,在print方法(p)的第一个字母中,您注意到它是大写的。在编程中,命名约定很重要,因此print()应该全部使用小写。让我们来看看第二种方法中的错误:
如上所述,请更正打印()。继续下一步,大小以绿色下划线。我建议您为代码准备一个linting程序,在这种情况下,按照约定,变量应该以小写字母开头。如果我们解决了这两个问题,代码的状态如下:
好的,很好,现在情况好转了。但是,为什么self有一个红色下划线?self的原因是将调用此类的此方法的当前实例上下文化。问题在于尚未声明stack属性,为此,请将代码更改为如下所示:
File "main.py", line 2 def __init__(self)
^
SyntaxError: invalid syntax
请注意,我删除了pass,并为stack成员变量分配了一个空列表。当然,您将决定stack成员变量为,在本例中,我只是将其添加为列表
好的,现在,最后一个问题是,为什么大小为零?随着我添加的代码更改,它现在应该返回零(0),因为堆栈列表是空的,但有一个列表
按照惯例,类以大写字母开头
最后,如何访问堆栈的顶部元素?像这样:
当然,这段代码的上下文在类上下文之外,请注意它没有self.,但是对于self.stack它应该是相同的
我希望这有帮助,朋友!:) 您尚未将任何对象指定给堆栈。函数返回None,因为您还没有从函数返回任何内容。多谢,我已经调试了所有代码,它可以正常工作!:)。
class stack:
def __init__(self):
self.stack = []
def stacksize(self):
size = len(self.stack)
print('size is', size)