zoukankan      html  css  js  c++  java
  • 【python学习】动手写第一个类

    俗话说“好记性不如烂笔头”,真正开始写类的时候才发现那是相当累啊。

    一、题目

    编写一个类,实现简单的栈。数据的操作按照先进后出(FILO)的顺序。主要成员函式为put(item),实现数据item插入栈中;get(),实现从栈中取一个数据。

    二、准备工作

    开始之前要做些准备工作,主要是熟悉点规范吧,以后慢慢正规化!

    头部加上编码(默认utf8)、头部的其他信息(如作者、修改时间等)、注释(普通注释和docstring)

    具体规范见:http://blog.csdn.net/lanphaday/article/details/6601123

    三、解决方案

    这个大体思路还是很简单的,利用python的list数据类型,很方便使用。附上代码。

    #-*- coding:utf-8 -*-
    #FileName:stack.py
    #Author:Xue Weiwei@USTC
    #Last-Modify:2012-5-15

    '''自定义栈
        @note:类和对象的使用'''

    class MyStack:
        '''MyStack
            自定义栈,主要操作put(),get()
        '''
        def __init__(self,maxsize):
            '''
            初始化栈和一些参数
            @param max:指定栈的最大长度
            '''
            self.max=maxsize
            self.top=-1
            self.stack=list()
            for i in range(self.max):
                self.stack.append(0)        #初始化栈,开辟空间,否则数据溢出

        def put(self,str):
            '''
            将数据压入栈
            @param str:欲压入栈中的字符串
            '''
            if self.top>=self.max:          #防止溢出
                return "Error: the stack is overflow!"
            else:
                self.top+=1
                self.stack[self.top]=str
                print "put %s into the stack" % str
           

        def get(self):
            '''
            从栈中获取字符串
            @return:栈顶字符串
            '''
            if self.top<0:                  #防止空栈
                return "Error: the stack is empty!"
            else:
                self.top-=1
                return self.stack[self.top+1]


    if __name__=='__main__':
        mystack=MyStack(10)
        mystack.put('a')
        mystack.put('b')
        mystack.get()
        mystack.get()

  • 相关阅读:
    最先与最后(鲁迅)
    GPS固定数据输出语句($GPGGA)
    网络流量测量软件的设计与实现
    塑料模型毕业设计论文
    周末去牛街!
    周口店猿人遗址!
    总有一些东西让我们泪流满面
    不行了,回去休息
    过完节回到北京了
    算法竞赛专题解析(0)写作计划
  • 原文地址:https://www.cnblogs.com/xweiwei/p/2502237.html
Copyright © 2011-2022 走看看