﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Shao Fan-随笔分类-Python</title><link>http://www.blogjava.net/shaofan/category/8505.html</link><description>关于JAVA与软件工程</description><language>zh-cn</language><lastBuildDate>Tue, 05 Jun 2007 00:54:34 GMT</lastBuildDate><pubDate>Tue, 05 Jun 2007 00:54:34 GMT</pubDate><ttl>60</ttl><item><title> Python中help()怎么用？</title><link>http://www.blogjava.net/shaofan/archive/2007/06/05/122036.html</link><dc:creator>shaofan</dc:creator><author>shaofan</author><pubDate>Mon, 04 Jun 2007 22:28:00 GMT</pubDate><guid>http://www.blogjava.net/shaofan/archive/2007/06/05/122036.html</guid><wfw:comment>http://www.blogjava.net/shaofan/comments/122036.html</wfw:comment><comments>http://www.blogjava.net/shaofan/archive/2007/06/05/122036.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shaofan/comments/commentRss/122036.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shaofan/services/trackbacks/122036.html</trackback:ping><description><![CDATA[<p><span class="postbody">help是一个内置函数，所谓内置函数，就是在Python中被自动加载的函数，任何时候都可以用。参数分两种：</span></p>
<ul>
    <li><span class="postbody">如果传一个字符串做参数的话，它会自动搜索以这个字符串命名的模块，方法，等。</span></li>
    <li><span class="postbody">如果传入的是一个对象，就会显示这个对象的类型的帮助。</span></li>
</ul>
<p><span class="postbody"> 比如输入help(&#8217;print&#8217;)，它就会寻找以&#8217;print&#8217;为名的模块，类，等，找不到就会看到提示信息。而print在python里是一个保留字，和pass,return同等，而非对象，所以help(print)也会出错((kkkkkkk))。</span></p>
<p>举个例子：<br>
<coolcode lang="python"><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">1</span>&nbsp;<span style="color: #000000;">help(&#8217;sys&#8217;)&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">会列出sys模块的帮助</span><span style="color: #008000;"><br></span><span style="color: #008080;">2</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;[</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">2</span><span style="color: #000000;">,</span><span style="color: #000000;">3</span><span style="color: #000000;">]<br></span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">help(a)&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">会显示list的帮助</span><span style="color: #008000;"><br></span><span style="color: #008080;">4</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">help(a.append)&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">会显示list的append方法的帮助</span></div>
<br>
</coolcode></p>
<p>python安装自带的library reference，2.1节是关于内置函数的。</p>
<p><span class="postbody">Reference Manual的6.6节可以找到关于print的东东。</span></p><img src ="http://www.blogjava.net/shaofan/aggbug/122036.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shaofan/" target="_blank">shaofan</a> 2007-06-05 06:28 <a href="http://www.blogjava.net/shaofan/archive/2007/06/05/122036.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单对比一下Python/Django和Java/Struts/JSP的请求处理结构</title><link>http://www.blogjava.net/shaofan/archive/2007/04/06/109007.html</link><dc:creator>shaofan</dc:creator><author>shaofan</author><pubDate>Fri, 06 Apr 2007 11:11:00 GMT</pubDate><guid>http://www.blogjava.net/shaofan/archive/2007/04/06/109007.html</guid><wfw:comment>http://www.blogjava.net/shaofan/comments/109007.html</wfw:comment><comments>http://www.blogjava.net/shaofan/archive/2007/04/06/109007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shaofan/comments/commentRss/109007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shaofan/services/trackbacks/109007.html</trackback:ping><description><![CDATA[假设：用两者写一个最小的WEB程序。<br>过程可以参照：<br>1.struts的就太多了,随便哪个都可以<br>2.python/django可以看limodou写的<a target="_blank" href="http://www.woodpecker.org.cn/obp/django/django-stepbystep/newtest/doc/">Django step by step</a><br><br>&nbsp;
<table style="width: 874px; height: 274px;" bgcolor="#ffffff" border="1">
    <tbody>
        <tr bgcolor="#dde6ff">
            <td><br></td>
            <td style="font-weight: bold;">Java/Struts/JSP</td>
            <td align="left" valign="middle">&nbsp;<span style="font-weight: bold;">Python/Django</span></td>
        </tr>
        <tr bgcolor="#dde6ff">
            <td style="font-weight: bold;">开发步骤</td>
            <td>1.在web.xml里配置struts的servlet<br>2.在struts-config.xml里配置URL和action的映射<br>3.写action<br>4.写JSP</td>
            <td align="left" valign="middle">1.在urls.py里配置URL到方法的映射<br>2.写相应的方法<br>3.写HTML模板</td>
        </tr>
        <tr bgcolor="#dde6ff">
            <td style="font-weight: bold;" align="left" valign="middle">调用过程</td>
            <td align="left" valign="middle">1.根据web.xml的映射调用struts的servlet controller<br>2.servlet controller根据struts-config.xml的映射调用相应的action<br>3.action处理请求<br>4.JSP渲染显示</td>
            <td align="left" valign="middle">1.根据urls.py的映射调用相应的方法<br>2.方法处理请求<br>3.HTML渲染显示</td>
        </tr>
    </tbody>
</table>
<br><br>相比之下前者用了两层才把一个HTTP请求映射到实际处理的方法：第一次是servlet的映射，第二次是struts action的映射。<br>而django则一次就从URL映射到相应的方法了。<br><br>另外一个比较显著的区别，也是基于java和python的语言上的区别吧，java的所有方法必需包含在一个类中，因此action mapping配置时是映射到类，而action在实现类则应实现事先约定的方法(通过继承或实现接口)。而django则直接得多，可以直接在配置里写明处理请求的方法名。<br><br><br><img src ="http://www.blogjava.net/shaofan/aggbug/109007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shaofan/" target="_blank">shaofan</a> 2007-04-06 19:11 <a href="http://www.blogjava.net/shaofan/archive/2007/04/06/109007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个Linux下显示目录树的脚本</title><link>http://www.blogjava.net/shaofan/archive/2006/08/01/61122.html</link><dc:creator>shaofan</dc:creator><author>shaofan</author><pubDate>Tue, 01 Aug 2006 00:57:00 GMT</pubDate><guid>http://www.blogjava.net/shaofan/archive/2006/08/01/61122.html</guid><wfw:comment>http://www.blogjava.net/shaofan/comments/61122.html</wfw:comment><comments>http://www.blogjava.net/shaofan/archive/2006/08/01/61122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shaofan/comments/commentRss/61122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shaofan/services/trackbacks/61122.html</trackback:ping><description><![CDATA[最近因为Globus的原因，不得不用Linux了。以前几次想学，都因为难得要领放弃了。这次装了<a href="http://www.ubuntu.org.cn">Ubuntu</a>，又碰巧在它的论坛上看到<a href="http://forum.ubuntu.org.cn/viewtopic.php?t=18740">一篇很不错的教程</a>，终于有些“入门”的感觉了。看来找到合适的教程真的是很重要啊。这几天用下来，感觉还真的很不错。用Python写了个显示目录树的小程序。也不知道有没有现成的，反正很简单，刚好就练练手，功能也够我自己用了:)<br /><br /><a href="/Files/shaofan/dtree.rar">下载Python脚本</a><br /><br /><img src="http://img539.photo.163.com/rainy14f/46864571/1716495189.jpg" /><br /><img src ="http://www.blogjava.net/shaofan/aggbug/61122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shaofan/" target="_blank">shaofan</a> 2006-08-01 08:57 <a href="http://www.blogjava.net/shaofan/archive/2006/08/01/61122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的Python初体验</title><link>http://www.blogjava.net/shaofan/archive/2006/03/09/34544.html</link><dc:creator>shaofan</dc:creator><author>shaofan</author><pubDate>Thu, 09 Mar 2006 12:31:00 GMT</pubDate><guid>http://www.blogjava.net/shaofan/archive/2006/03/09/34544.html</guid><wfw:comment>http://www.blogjava.net/shaofan/comments/34544.html</wfw:comment><comments>http://www.blogjava.net/shaofan/archive/2006/03/09/34544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shaofan/comments/commentRss/34544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shaofan/services/trackbacks/34544.html</trackback:ping><description><![CDATA[<div style="float: left;"><img src="http://www.python.org/images/python-logo.gif"></div><div style="clear: right;">我有一个习惯，每次学门语言，总要自己写个List或Stack并加上Unit Test来试试。这次对Python也不例外。总体感觉有以下几点<br><br>1.这是我用过的唯一一个把代码行的缩进也做为语法的语言，就因为不正确的缩进，我的第一个Python程序让我吃尽了苦头。事情是这样的，我运行测试时，报告每次都说"Ran 0 test in 0.000s"，找了半天，也找不出为什么只运行了0个测试，一直以为是unittest包的用法有问题，或我的语法有问题，直到花了大半个小时翻书，又对比其他的测试程序以后，才发现，天啊，原来是因为最后一行的缩进多缩了一层，被认为与上一个方法同一个block。<br><br>2.虽然在缩进上吃了苦头，但是代码看起来确实相当整洁清楚，感觉比java的动不动一堆大括号相比，实在多了。<br><br>3.Python的每个module（可以看作与java的包类似）都可以包含方法和类，而java的所有方法都要写在类里，包里只有类，这点相当不同。<br><br>4.因为Python是用c实现的，它的命名比较简单，使用很多缩写，与java的长长一串的命名是很强烈的对比<br><br>5.Python是动态类型的语言，变量不需声明类型可以直接使用，虽然方便，但缺点也很明显，那就是变量的类型信息不见了，经常搞不清楚方法的参数要传入什么，返回什么，挺不习惯的。<br><br>6.就因为缺少类型信息，Python的文档也没有Java的可读性强。比如java的 String foo(int a)一看就知道传入整形返回字符串，换成Python就变成了 foo(a)，只能读文档才能搞清楚了。可能我还没习惯的原因吧，感觉有时文档对它们的类型也说的不太清楚。<br><br>总体感觉Python一些风格像C。写起代码来，感觉很快，很清楚，还是很不错的 I love the feeling :)</div><br><br><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><img id="Code_Closed_Image" onclick="this.style.display='none'; Code_Closed_Text.style.display='none'; Code_Open_Image.style.display='inline'; Code_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image" style="display: none;" onclick="this.style.display='none'; Code_Open_Text.style.display='none'; Code_Closed_Image.style.display='inline'; Code_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text" style="border: 1px solid rgb(128, 128, 128); background-color: rgb(255, 255, 255);">看看我写的Stack</span><span id="Code_Open_Text" style="display: none;"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 128);">&nbsp;1</span>&nbsp;<span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">!/usr/bin/python</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;2</span>&nbsp;<span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">&nbsp;-*-&nbsp;coding:&nbsp;cp936&nbsp;-*-</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;3</span>&nbsp;<span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">Filename:stack.py</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;4</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;5</span>&nbsp;<span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;unittest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">引用两个模块，每个模块实际都是一个py文件</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;6</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);">&nbsp;testhelper&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">本文件也可看作一个模块，可以被引用</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;7</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;8</span>&nbsp;<span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">Stack&nbsp;definition</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">&nbsp;9</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;Stack2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">行首缩进和冒号代替了大括号{}</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">10</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">11</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 128);">__init__</span><span style="color: rgb(0, 0, 0);">(self,&nbsp;initCap,&nbsp;values</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">[]):&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">构造方法，values默认值为空列表</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">12</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.capacity</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">initCap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">表明capacity是一个实例变量</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">13</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.elements</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">values<br></span><span style="color: rgb(0, 128, 128);">14</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">15</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);">&nbsp;pop(self):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">self参数表明它是实例方法(非static)</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">16</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;len(self.elements)<br></span><span style="color: rgb(0, 128, 128);">17</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;size</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">0:<br></span><span style="color: rgb(0, 128, 128);">18</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">raise</span><span style="color: rgb(0, 0, 0);">&nbsp;Exception()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">抛出一个异常</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">19</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);">:<br></span><span style="color: rgb(0, 128, 128);">20</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;self.elements[&nbsp;size</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;]&nbsp;<br></span><span style="color: rgb(0, 128, 128);">21</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">del</span><span style="color: rgb(0, 0, 0);">&nbsp;self.elements[size</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">22</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;result<br></span><span style="color: rgb(0, 128, 128);">23</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">24</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);">&nbsp;push(self,value):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">关键字def用来定义一个方法</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">25</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;len(self.elements)<br></span><span style="color: rgb(0, 128, 128);">26</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(&nbsp;size</span><span style="color: rgb(0, 0, 0);">&gt;=</span><span style="color: rgb(0, 0, 0);">self.capacity&nbsp;):<br></span><span style="color: rgb(0, 128, 128);">27</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">raise</span><span style="color: rgb(0, 0, 0);">&nbsp;Exception()<br></span><span style="color: rgb(0, 128, 128);">28</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);">:<br></span><span style="color: rgb(0, 128, 128);">29</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.elements.append(value)<br></span><span style="color: rgb(0, 128, 128);">30</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">31</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);">&nbsp;size(self):<br></span><span style="color: rgb(0, 128, 128);">32</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">&nbsp;len(self.elements)<br></span><span style="color: rgb(0, 128, 128);">33</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">34</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">35</span>&nbsp;<span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">Unit&nbsp;test&nbsp;of&nbsp;Stack2</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">36</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">&nbsp;TestStack(&nbsp;unittest.TestCase&nbsp;):<br></span><span style="color: rgb(0, 128, 128);">37</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">def</span><span style="color: rgb(0, 0, 0);">&nbsp;test(self):<br></span><span style="color: rgb(0, 128, 128);">38</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">test&nbsp;empty&nbsp;stack&nbsp;construction</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">39</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.stack</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">Stack2(</span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">)<br></span><span style="color: rgb(0, 128, 128);">40</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;0,&nbsp;self.stack.size()&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">41</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertRaises(&nbsp;Exception,&nbsp;self.stack.pop&nbsp;)&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">pop方法作为参数传入</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">42</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">43</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">push&nbsp;elements&nbsp;into&nbsp;it</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">44</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.stack.push(</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">)<br></span><span style="color: rgb(0, 128, 128);">45</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.stack.push(</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">)<br></span><span style="color: rgb(0, 128, 128);">46</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.stack.push(</span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">)<br></span><span style="color: rgb(0, 128, 128);">47</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertRaises(&nbsp;Exception,&nbsp;self.stack.push,&nbsp;</span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">48</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;</span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">,&nbsp;self.stack.size()&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">49</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br></span><span style="color: rgb(0, 128, 128);">50</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">now&nbsp;pop&nbsp;the&nbsp;elements</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">51</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;</span><span style="color: rgb(0, 0, 0);">3</span><span style="color: rgb(0, 0, 0);">,&nbsp;self.stack.pop()&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">52</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">,&nbsp;self.stack.pop()&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">53</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">,&nbsp;self.stack.pop()&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">54</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertRaises(&nbsp;Exception,&nbsp;self.stack.pop&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">55</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.assertEquals(&nbsp;0,&nbsp;self.stack.size()&nbsp;)<br></span><span style="color: rgb(0, 128, 128);">56</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">57</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">58</span>&nbsp;<span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">run&nbsp;test</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">59</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="color: rgb(0, 128, 128);">60</span>&nbsp;<span style="color: rgb(0, 0, 0);"></span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(128, 0, 128);">__name__</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(128, 0, 0);">__main__</span><span style="color: rgb(128, 0, 0);">'</span><span style="color: rgb(0, 0, 0);">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">判断是否被引用</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">61</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;testhelper.runTest(&nbsp;TestStack&nbsp;)&nbsp;</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">只在不是被引用的情况下才执行</span><span style="color: rgb(0, 128, 0);"><br></span><span style="color: rgb(0, 128, 128);">62</span>&nbsp;<span style="color: rgb(0, 128, 0);"></span></span></div><br><img src ="http://www.blogjava.net/shaofan/aggbug/34544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shaofan/" target="_blank">shaofan</a> 2006-03-09 20:31 <a href="http://www.blogjava.net/shaofan/archive/2006/03/09/34544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Python的资源指南(了解，学习)</title><link>http://www.blogjava.net/shaofan/archive/2006/03/05/33659.html</link><dc:creator>shaofan</dc:creator><author>shaofan</author><pubDate>Sun, 05 Mar 2006 01:30:00 GMT</pubDate><guid>http://www.blogjava.net/shaofan/archive/2006/03/05/33659.html</guid><wfw:comment>http://www.blogjava.net/shaofan/comments/33659.html</wfw:comment><comments>http://www.blogjava.net/shaofan/archive/2006/03/05/33659.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/shaofan/comments/commentRss/33659.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shaofan/services/trackbacks/33659.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 总感觉只会JAVA似乎不够，不记得是哪位先人说的了，一个程序员起码要精通两门语言，所以这些天花了不少时间琢磨python，看了不少网站，查了不少资料，正想着把一些东西写下来，以免日后忘了，也可以和大家分享．先写一些下载安装和学习资源的东东.&nbsp;&nbsp;<a href='http://www.blogjava.net/shaofan/archive/2006/03/05/33659.html'>阅读全文</a><img src ="http://www.blogjava.net/shaofan/aggbug/33659.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shaofan/" target="_blank">shaofan</a> 2006-03-05 09:30 <a href="http://www.blogjava.net/shaofan/archive/2006/03/05/33659.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>