怎么获得栈的长度,和获取栈顶的元素,判断为空

class SequenceStack:
def init(self, max = 10):
self.maxstacksize = max
self.s = [None for x in range(0, self.maxstacksize)]
self.top = -1

def isemptystack(self):
    if self.top == -1:
        iTop = True
    else:
        iTop = False
    return iTop

def pushstack(self, x):
    if self.top < self.maxstacksize - 1:
        self.top = self.top + 1
        self.s[self.top] = x
    else:
        print("栈满")
        return

def popstack(self):
    if self.isemptystack():
        print("栈为空")
        return
    else:
        itop = self.top
        self.top = self.top - 1
    return self.s[itop]

def gettopstack(self):
    if self.isemptystack():
        print("栈为空")
        return
    else:
        return self.s[self.top]

def stacktraverse(self):
    if self.isemptystack():
        print("栈为空")
        return
    else:
        for i in range(0, self.top + 1):
            print(self.s[i], end=' ')

def createstackbyinput(self):
    data = input("请输入元素(继续输入请按回车键,结束请输入'#'):")
    while data != '#':
        self.pushstack(data)
        data = input("请输入元素: ")

if name == 'main':
ss = SequenceStack()
ss.createstackbyinput()
print("栈内的元素为: ", end=' ')
ss.stacktraverse()