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()

  • 相关阅读:
    打造TypeScript的Visual Studio Code开发环境
    Visual Studio Code 使用Git进行版本控制
    每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
    每周一书-《鸟哥的Linux私房菜》获奖公布
    Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)
    微信公众平台及门户应用
    Bootstrap开发框架
    公用类库使用帮助
    git
    SQL Server 基本函数 与 类型
  • 原文地址:https://www.cnblogs.com/xweiwei/p/2502237.html
Copyright © 2011-2022 走看看