<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蜗牛的牛窝 &#187; python</title>
	<atom:link href="http://www.woniu.us/category/python/feed" rel="self" type="application/rss+xml" />
	<link>http://www.woniu.us</link>
	<description>php开发、PHP程序分析、Python程序设计、心情随笔</description>
	<lastBuildDate>Mon, 09 Aug 2010 13:44:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>pyqt4开发步骤</title>
		<link>http://www.woniu.us/python/238.html</link>
		<comments>http://www.woniu.us/python/238.html#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:06:49 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[pyqt4]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=238</guid>
		<description><![CDATA[用pyqt4来开发图形界面程序的步骤如下]]></description>
			<content:encoded><![CDATA[<p>用pyqt4来开发图形界面程序的步骤如下</p>
<p>
1：用Qt Designer做好图形界面并保存为x.ui文件<br />
2：用pyqt自带的命令pyuic4 edytor.ui > edytor.py。 这样就得到了一个Ui_notepad类(假定窗口名为notepad)<br />
代码大致如下</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> PyQt4 <span style="color: #ff7700;font-weight:bold;">import</span> QtCore, QtGui<br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Ui_notepad<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> setupUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, notepad<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; notepad.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;notepad&quot;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; notepad.<span style="color: black;">resize</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">548</span>, <span style="color: #ff4500;">483</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; icon = QtGui.<span style="color: black;">QIcon</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; icon.<span style="color: black;">addPixmap</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QPixmap</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;sakila.png&quot;</span><span style="color: black;">&#41;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; QtGui.<span style="color: black;">QIcon</span>.<span style="color: black;">Normal</span>, QtGui.<span style="color: black;">QIcon</span>.<span style="color: black;">Off</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; notepad.<span style="color: black;">setWindowIcon</span><span style="color: black;">&#40;</span>icon<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">button_open</span> = QtGui.<span style="color: black;">QPushButton</span><span style="color: black;">&#40;</span>notepad<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">button_open</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">251</span>, <span style="color: #ff4500;">61</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">button_open</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;button_open&quot;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span> = QtGui.<span style="color: black;">QPushButton</span><span style="color: black;">&#40;</span>notepad<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">280</span>, <span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">251</span>, <span style="color: #ff4500;">61</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;pushButton_2&quot;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">editor_window</span> = QtGui.<span style="color: black;">QTextEdit</span><span style="color: black;">&#40;</span>notepad<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">editor_window</span>.<span style="color: black;">setGeometry</span><span style="color: black;">&#40;</span>QtCore.<span style="color: black;">QRect</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">20</span>, <span style="color: #ff4500;">90</span>, <span style="color: #ff4500;">511</span>, <span style="color: #ff4500;">371</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">editor_window</span>.<span style="color: black;">setObjectName</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;editor_window&quot;</span><span style="color: black;">&#41;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">retranslateUi</span><span style="color: black;">&#40;</span>notepad<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; QtCore.<span style="color: black;">QObject</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>, QtCore.<span style="color: black;">SIGNAL</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;clicked()&quot;</span><span style="color: black;">&#41;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; notepad.<span style="color: black;">close</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; QtCore.<span style="color: black;">QMetaObject</span>.<span style="color: black;">connectSlotsByName</span><span style="color: black;">&#40;</span>notepad<span style="color: black;">&#41;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> retranslateUi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, notepad<span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; notepad.<span style="color: black;">setWindowTitle</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;notepad&quot;</span>, <span style="color: #483d8b;">&quot;记事本&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">button_open</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;notepad&quot;</span>, <span style="color: #483d8b;">&quot;打开&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">pushButton_2</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">translate</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;notepad&quot;</span>, <span style="color: #483d8b;">&quot;关闭&quot;</span>, <span style="color: #008000;">None</span>, QtGui.<span style="color: black;">QApplication</span>.<span style="color: black;">UnicodeUTF8</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></div></div>
<p>3：创建一个start.py文件 做主文件</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span><br />
<span style="color: #ff7700;font-weight:bold;">from</span> PyQt4 <span style="color: #ff7700;font-weight:bold;">import</span> QtCore, QtGui<br />
<span style="color: #ff7700;font-weight:bold;">from</span> edytor <span style="color: #ff7700;font-weight:bold;">import</span> Ui_notepad <span style="color: #808080; font-style: italic;">#加载生成的图形界面类</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> StartQt4<span style="color: black;">&#40;</span>QtGui.<span style="color: black;">QMainWindow</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; QtGui.<span style="color: black;">QWidget</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, parent<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">ui</span> = Ui_notepad<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: #808080; font-style: italic;">#实例化这个类</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">ui</span>.<span style="color: black;">setupUi</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span><span style="color: #808080; font-style: italic;">#调用setupUi方法</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; QtCore.<span style="color: black;">QObject</span>.<span style="color: black;">connect</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">ui</span>.<span style="color: black;">button_open</span>,QtCore.<span style="color: black;">SIGNAL</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;clicked()&quot;</span><span style="color: black;">&#41;</span>, <span style="color: #008000;">self</span>.<span style="color: black;">file_dialog</span><span style="color: black;">&#41;</span><br />
<span style="color: #808080; font-style: italic;">#绑定信号/槽 也就是将电机button_open这个按钮的事件，绑定到file_dialog这个函数上</span><br />
&nbsp; &nbsp;<span style="color: #ff7700;font-weight:bold;">def</span> file_dialog<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">self</span>.<span style="color: black;">ui</span>.<span style="color: black;">editor_window</span>.<span style="color: black;">setText</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'aaaaaaaaaa'</span><span style="color: black;">&#41;</span><br />
<br />
<br />
<br />
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:<br />
&nbsp; &nbsp; app = QtGui.<span style="color: black;">QApplication</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">sys</span>.<span style="color: black;">argv</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; myapp = StartQt4<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; myapp.<span style="color: black;">show</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>app.<span style="color: black;">exec_</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></div></div>
<p>4：发布，新建一个setup.py文件<br />
setup.py如下：<br />
# setup.py</p>
<p>from distutils.core import setup<br />
import py2exe</p>
<p>setup(windows=["loadMain.py"])<br />
5：发布<br />
python setup.py py2exe  -p PyQt4，sip<br />
注意：在setup.py中除了导入必需的模块以外，只有一条语句。<br />
distutils.core.setup(windows=['MessageBox.py'])<br />
方括号中就是要编译的脚本名，前边的windows表示将其编译成GUI程序。如果要编译命令行界面的可执行文件，只要将windows改为console
</p>
<p>py2exe会在当前目录下生成两个目录 build和dist<br />
build里是一些py2exe运行时产生的中间文件，dist里有最终的可执行文件<br />
 library.zip<br />
 w9xpopen.exe<br />
 python23.dll<br />
 hello.exe </p>
<p>不过记得如果要发布到别的机器上时，library.zip、 w9xpopen.exe、python23.dll这几个文件是必须要和hello.exe在一起的。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/238.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django学习笔记——进阶——模型</title>
		<link>http://www.woniu.us/python/230.html</link>
		<comments>http://www.woniu.us/python/230.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 09:41:46 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[python网站开发]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=230</guid>
		<description><![CDATA[在开始之前需要新建一个应用程序。在这之前我们已经创建了 project , 那么 project 和 app 之间到底有什么不同呢？ 它们的区别就是一个是配置另一个是代码。也就是说一个app是一套Django功能的集合，通常包括模型和视图，按Python的包结构的方式存在]]></description>
			<content:encoded><![CDATA[<h2>新建应用程序</h2>
<p>在开始之前需要新建一个应用程序。在这之前我们已经创建了 project , 那么 project 和 app 之间到底有什么不同呢？ 它们的区别就是一个是配置另一个是代码。也就是说一个app是一套Django功能的集合，通常包括模型和视图，按Python的包结构的方式存在。</p>
<p>在&#8220; mysite&#8220; 项目文件下输入下面的命令来创建&#8220; books&#8220; app<br />
python manage.py startapp books<br />
这个命令在mysite目录下新建了一个book的app应用程序</p>
<h2>模型</h2>
<p>
模型创建的流程<br />
<b>1：在settings.py中配置数据库信息</b><br />
<b>2：在app中models.py文件里定义模型</b></p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">db</span> <span style="color: #ff7700;font-weight:bold;">import</span> models<br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Publisher<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; name = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; address = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; city = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">60</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; state_province = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; country = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; website = models.<span style="color: black;">URLField</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Author<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; first_name = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; last_name = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">40</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #dc143c;">email</span> = models.<span style="color: black;">EmailField</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Book<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; title = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; authors = models.<span style="color: black;">ManyToManyField</span><span style="color: black;">&#40;</span>Author<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; publisher = models.<span style="color: black;">ForeignKey</span><span style="color: black;">&#40;</span>Publisher<span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; publication_date = models.<span style="color: black;">DateField</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div>
<p>每个模型相当于单个数据库表，每个属性也是这个表中的一个字段</p>
<p><b>3:模型安装</b><br />
编辑 settings.py 文件， 找到 INSTALLED_APPS 设置,INSTALLED_APPS 告诉 Django 项目哪些 app 处于激活状态.</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">INSTALLED_APPS = <span style="color: black;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># 'django.contrib.auth',</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># 'django.contrib.contenttypes',</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># 'django.contrib.sessions',</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># 'django.contrib.sites',</span><br />
&nbsp; &nbsp; <span style="color: #483d8b;">'mysite.books'</span>,<br />
<span style="color: black;">&#41;</span></div></div>
<p>首先，用下面的命令对校验模型的有效性：<br />
python manage.py validate<br />
没问题之后运行下面的命令来生成 CREATE TABLE 语句：<br />
python manage.py sqlall books<br />
然后通过下列命令执行SQL<br />
python manage.py syncdb<br />
syncdb 命令是同步你的模型到数据库的一个简单方法。 它会根据 INSTALLED_APPS 里设置的app来检查数据库， 如果表不存在，它就会创建它。 需要注意的是， syncdb 并 不能 同步模型的修改到数据库。 （本章的最后将详细讨论修改数据库的架构）
</p>
<h2>基本数据访问</h2>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> books.<span style="color: black;">models</span> <span style="color: #ff7700;font-weight:bold;">import</span> Publisher<br />
p1 = Publisher<span style="color: black;">&#40;</span>name=<span style="color: #483d8b;">'Apress'</span>, address=<span style="color: #483d8b;">'2855 Telegraph Avenue'</span>,<br />
city=<span style="color: #483d8b;">'Berkeley'</span>, state_province=<span style="color: #483d8b;">'CA'</span>, country=<span style="color: #483d8b;">'U.S.A.'</span>,<br />
website=<span style="color: #483d8b;">'http://www.apress.com/'</span><span style="color: black;">&#41;</span><br />
p1.<span style="color: black;">save</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
publisher_list = Publisher.<span style="color: black;">objects</span>.<span style="color: #008000;">all</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div>
<p>首先，导入Publisher模型类， 通过这个类我们可以与包含 出版社 的数据表进行交互。<br />
接着，创建一个&#8220; Publisher&#8220; 类的实例并设置了字段&#8220; name, address&#8220; 等的值。<br />
调用该对象的 save() 方法，将对象保存到数据库中。 Django 会在后台执行一条 INSERT 语句。<br />
最后，使用&#8220; Publisher.objects&#8220; 属性从数据库取出出版商的信息，这个属性可以认为是包含出版商的记录集。 这个属性有许多方法，这里先介绍调用&#8220; Publisher.objects.all()&#8220; 方法获取数据库中&#8220; Publisher&#8220; 类的所有对象。这个操作的幕后，Django执行了一条SQL &#8220; SELECT&#8220; 语句。</p>
<p>注意：当你使用Django modle API创建对象时Django并未将对象保存至数据库内，除非你调用&#8220; save()&#8220; 方法<br />
如果需要一步完成对象的创建与存储至数据库，就使用&#8220; objects.create()&#8220; 方法</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">p1 = Publisher.<span style="color: black;">objects</span>.<span style="color: black;">create</span><span style="color: black;">&#40;</span>name=<span style="color: #483d8b;">'Apress'</span>,<br />
address=<span style="color: #483d8b;">'2855 Telegraph Avenue'</span>,<br />
city=<span style="color: #483d8b;">'Berkeley'</span>, state_province=<span style="color: #483d8b;">'CA'</span>, country=<span style="color: #483d8b;">'U.S.A.'</span>,<br />
website=<span style="color: #483d8b;">'http://www.apress.com/'</span><span style="color: black;">&#41;</span></div></div>
<p><b>查询数据</b><br />
Publisher.objects.all() 查询出表的所有数据<br />
<b>数据过滤</b><br />
Publisher.objects.filter(name=&#8217;Apress&#8217;) 查询出name为apress值的记录<br />
Publisher.objects.filter(country=&#8221;U.S.A.&#8221;, state_province=&#8221;CA&#8221;)<br />
包含性查找<br />
Publisher.objects.filter(name__contains=&#8221;press&#8221;) 查找出name中包含press的记录。在 name 和 contains 之间有双下划线。其他的一些查找类型有： icontains (大小写无关的 LIKE ), startswith 和 endswith , 还有 range<br />
<b>获取耽搁数据</b><br />
Publisher.objects.get(name=&#8221;Apress&#8221;) 如果结果是多个对象，会导致抛出异常：如果查询没有返回结果也会抛出异常</p>
<h2>排序</h2>
<p>Publisher.objects.order_by(&#8220;state_province&#8221;, &#8220;address&#8221;)<br />
逆向排序<br />
Publisher.objects.order_by(&#8220;-name&#8221;)<br />
连锁<br />
Publisher.objects.filter(country=&#8221;U.S.A.&#8221;).order_by(&#8220;-name&#8221;)</p>
<p><b>限制返回数量</b><br />
Publisher.objects.order_by(&#8216;name&#8217;)[0] 返回第一个<br />
相当于<br />
SELECT id, name, address, city, state_province, country, website<br />
FROM books_publisher<br />
ORDER BY name<br />
LIMIT 1;<br />
取出特定子集<br />
Publisher.objects.order_by(&#8216;name&#8217;)[0:2]<br />
类似于<br />
SELECT id, name, address, city, state_province, country, website<br />
FROM books_publisher<br />
ORDER BY name<br />
LIMIT 0,2;</p>
<p><b>更新数据</b><br />
更新单个字段<br />
Publisher.objects.filter(id=52).update(name=&#8217;Apress Publishing&#8217;)<br />
类似于<br />
UPDATE books_publisher<br />
SET name = &#8216;Apress Publishing&#8217;<br />
WHERE id = 52;</p>
<p>更新多个字段<br />
p = Publisher.objects.get(name=&#8217;Apress&#8217;)<br />
p.name = &#8216;Apress Publishing&#8217;<br />
p.save()<br />
类似于<br />
SELECT id, name, address, city, state_province, country, website<br />
FROM books_publisher<br />
WHERE name = &#8216;Apress&#8217;;</p>
<p>UPDATE books_publisher SET<br />
    name = &#8216;Apress Publishing&#8217;,<br />
    address = &#8216;2855 Telegraph Ave.&#8217;,<br />
    city = &#8216;Berkeley&#8217;,<br />
    state_province = &#8216;CA&#8217;,<br />
    country = &#8216;U.S.A.&#8217;,<br />
    website = &#8216;http://www.apress.com&#8217;<br />
WHERE id = 52;<br />
在这个例子里我们可以看到Django的save()方法更新了不仅仅是name列的值，还有更新了所有的列。 若name以外的列有可能会被其他的进程所改动的情况下，只更改name列显然是更加明智的</p>
<p><b>删除数据</b><br />
p = Publisher.objects.get(name=&#8221;O&#8217;Reilly&#8221;)<br />
p.delete()<br />
删除多条记录<br />
Publisher.objects.filter(country=&#8217;USA&#8217;).delete()</p>
<h2>指定模型的缺省排序方式</h2>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> Publisher<span style="color: black;">&#40;</span>models.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; name = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; address = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; city = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">60</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; state_province = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">30</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; country = models.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span><br />
&nbsp; &nbsp; website = models.<span style="color: black;">URLField</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__unicode__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">name</span><br />
<br />
&nbsp; &nbsp; <span style="color: #ff7700;font-weight:bold;">class</span> Meta:<br />
&nbsp; &nbsp; &nbsp; &nbsp; ordering = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'name'</span><span style="color: black;">&#93;</span></div></div>
<p>class Meta，内嵌于 Publisher 这个类的定义中（如果 class Publisher 是顶格的，那么 class Meta 在它之下要缩进4个空格－－按 Python 的传统 ）。你可以在任意一个 模型 类中使用 Meta 类，来设置一些与特定模型相关的选项</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/230.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>django学习笔记——入门</title>
		<link>http://www.woniu.us/python/225.html</link>
		<comments>http://www.woniu.us/python/225.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 07:52:58 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=225</guid>
		<description><![CDATA[本笔记是基于django1.2的,python的版本为2.6.4
开始前的准备

环境的安装我就不记录了，详细的教程看这个 http://djangobook.py3k.cn/2.0/
1：新建一个项目，在你需要新建的目录中执行django-admin.py startproject mysite 命令 这样就会在当前目录中生成一个mysite目录
2：运行开发服务器 进入mysite目录使用该命令 python manage.py runserver 这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问]]></description>
			<content:encoded><![CDATA[<p>本笔记是基于django1.2的,python的版本为2.6.4</p>
<h3>开始前的准备</h3>
<p>环境的安装我就不记录了，详细的教程看这个 <a href="http://djangobook.py3k.cn/2.0/">http://djangobook.py3k.cn/2.0/</a><br />
1：新建一个项目，在你需要新建的目录中执行django-admin.py startproject mysite 命令  这样就会在当前目录中生成一个mysite目录<br />
2：运行开发服务器  进入mysite目录使用该命令 python manage.py runserver 这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问</p>
<h3>视图</h3>
<p>新建一个views.py文件，用来做视图。其实用其他文件名也没关系，只不过方便自己以及别人阅读，建议使用views.py,代码如下</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">http</span> <span style="color: #ff7700;font-weight:bold;">import</span> HttpResponse<br />
<br />
<span style="color: #ff7700;font-weight:bold;">def</span> hello<span style="color: black;">&#40;</span>request<span style="color: black;">&#41;</span>:<br />
<span style="color: #ff7700;font-weight:bold;">return</span> HttpResponse<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Hello world&quot;</span><span style="color: black;">&#41;</span></div></div>
<p>HttpResponse的作用是输出html代码到用户浏览器，每个视图函数的第一个参数通常命名为request，这是一个触发这个视图、包含当前Web请求信息的对象，是类django.http.HttpRequest的一个实例。<br />
一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest；它返回一个HttpResponse实例</p>
<h3>URL配置</h3>
<p>光有上面的视图是没有用的，需要通过URL映射才能起作用</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">conf</span>.<span style="color: black;">urls</span>.<span style="color: black;">defaults</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span><br />
<span style="color: #ff7700;font-weight:bold;">from</span> mysite.<span style="color: black;">views</span> <span style="color: #ff7700;font-weight:bold;">import</span> hello<br />
<br />
urlpatterns = patterns<span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>,<br />
<span style="color: black;">&#40;</span><span style="color: #483d8b;">'^hello/$'</span>, hello<span style="color: black;">&#41;</span>,<br />
<span style="color: black;">&#41;</span></div></div>
<p>或者</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">conf</span>.<span style="color: black;">urls</span>.<span style="color: black;">defaults</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span><br />
urlpatterns = patterns<span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>,<br />
<span style="color: black;">&#40;</span><span style="color: #483d8b;">'^hello/$'</span>, <span style="color: #483d8b;">&quot;mysite.views.hello&quot;</span><span style="color: black;">&#41;</span>,<br />
<span style="color: black;">&#41;</span></div></div>
<p>mysite为项目名 views为视图文件名,如果你用view_2.py做视图文件的话这里就使用mysite.view_2.hello<br />
这里我们只是告诉 Django，所有指向 URL /hello/ 的请求都应由 hello 这个视图函数来处理。<br />
^要求表达式对字符串的头部进行匹配，$符号则要求表达式对字符串的尾部进行匹配</p>
<p>URL正则表达式表</p>
<table id="cn58">
<thead>
<tr>
<th>符号</th>
<th>匹配</th>
</tr>
</thead>
<tbody>
<tr>
<td><tt>.</tt> (dot)</td>
<td>任意单一字符</td>
</tr>
<tr>
<td><tt>\d</tt></td>
<td>任意一位数字</td>
</tr>
<tr>
<td><tt>[A-Z]</tt></td>
<td><tt>A</tt> 到 <tt>Z</tt>中任意一个字符（大写）</td>
</tr>
<tr>
<td><tt>[a-z]</tt></td>
<td><tt>a</tt> 到 <tt>z</tt>中任意一个字符（小写）</td>
</tr>
<tr>
<td><tt>[A-Za-z]</tt></td>
<td><tt>a</tt> 到 <tt>z</tt>中任意一个字符（不区分大小写）</td>
</tr>
<tr>
<td><tt>+</tt></td>
<td>匹配一个或更多 (例如, <tt>\d+</tt> 匹配一个或 多个数字字符)</td>
</tr>
<tr>
<td><tt>[^/]+</tt></td>
<td>一个或多个不为‘/’的字符</td>
</tr>
<tr>
<td><tt>*</tt></td>
<td>零个或一个之前的表达式（例如：<tt>\d?</tt> 匹配零个或一个数字）</td>
</tr>
<tr>
<td><tt>*</tt></td>
<td>匹配0个或更多 (例如, <tt>\d*</tt> 匹配0个 或更多数字字符)</td>
</tr>
<tr>
<td><tt>{1,3}</tt></td>
<td>介于一个和三个（包含）之前的表达式（例如，<tt>\d{1,3}</tt>匹配一个或两个或三个数字）</td>
</tr>
</tbody>
</table>
<h3>django处理URL的流程</h3>
<p>1.进来的请求转入/hello/.<br />
2.Django通过在ROOT_URLCONF配置来决定根URLconf.<br />
3.Django在URLconf中的所有URL模式中，查找第一个匹配/hello/的条目。<br />
4.如果找到匹配，将调用相应的视图函数<br />
5.视图函数返回一个HttpResponse<br />
6.Django转换HttpResponse为一个适合的HTTP response， 以Web page显示出来</p>
<h3>获取URL传递来的参数</h3>
<p>1:在URL中配置  [code](r'^time/plus/(\d{1,2})/$', hours_ahead),[/code](\d{1,2})为获取1－99之间的数字<br />
2:视图</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">def</span> hours_ahead<span style="color: black;">&#40;</span>request, offset<span style="color: black;">&#41;</span>:<br />
<span style="color: #ff7700;font-weight:bold;">return</span> HttpResponse<span style="color: black;">&#40;</span>offset<span style="color: black;">&#41;</span></div></div>
<p>这里 offset就是获取到的值，当然也可以用其他参数名</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/225.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新的平台如何抉择？</title>
		<link>http://www.woniu.us/python/222.html</link>
		<comments>http://www.woniu.us/python/222.html#comments</comments>
		<pubDate>Mon, 25 Jan 2010 12:38:50 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[抉择]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=222</guid>
		<description><![CDATA[策划了好久的web2.0项目，一直没有决定用哪种语言去实现。PHP我很熟悉，python只是略知一二。但是又担心php的性能，所以一直没下定决心]]></description>
			<content:encoded><![CDATA[<p>策划了好久的web2.0项目，一直没有决定用哪种语言去实现。PHP我很熟悉，python只是略知一二。但是又担心php的性能，所以一直没下定决心。但是考虑到以后这个项目要同时实施在手机上以及在桌面也要有客户端程序，还是决定用python，这样的话WEB 手机 桌面 都可以用python来实现。用python是定下来了，但是用什么环境呢？ 用GAE的话，前期都可以不用考虑什么费用了，连空间都不用租了，直接用免费的了，等访问量大了的话就可以向谷歌购买资源来实现，价格也还可以。不过一个很大的问题是，万一谷歌的.com域名 又被墙了怎么办？</p>
<p>所以最终还是用python 来实现而不使用GAE。接下来是选择什么WEB框架呢？django还是web.py呢？django适用于敏捷开发，开发难度小耗时短，不过学习成本大一点，而且后期负载大的时候 有可能会比较难应付。而web.py简单 容易上手，也很方便实施，而且就算负载再大页很容易应付，因为很多东西都是可以控制的。唯一的缺点是 开发速度慢一点。综合一下觉得还是用django。一是 很多人都推荐用这个，其次是负载大的话也是好事，证明那时候已经有那么多的访问量了，再考虑如何应付也不迟。再者移植到gae上也相对容易一点。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/222.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将python程序移植到linux下</title>
		<link>http://www.woniu.us/python/211.html</link>
		<comments>http://www.woniu.us/python/211.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 13:31:23 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[移植]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/?p=211</guid>
		<description><![CDATA[今天将系统上的python程序全部转到linux下，但是却发现出错了。错误提示为:
/usr/bin/python^M: bad interpreter: 没有那个文件或目录]]></description>
			<content:encoded><![CDATA[<p>今天将系统上的python程序全部转到linux下，但是却发现出错了。错误提示为:<br />
<strong>/usr/bin/python^M: bad interpreter: 没有那个文件或目录<br />
</strong><br />
搞了半天，才发现原来是换行的问题，因为在WINDOWS下默认加上了换行符，使用如下命令</p>
<div class="codecolorer-container text vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ sed -e 's/.$//' mywin.py &amp;gt; mylinux.py</div></div>
<p>这个脚本用来替代规则表达式与一行的最末字符匹配，而该字符恰好就是回车。我们用空字符替换它，从而将其从输出中彻底删除。如果使用该脚本并注意到已经删除了输出中每行的最末字符，那么，您就指定了已经是 UNIX格式的文本文件。也就没必要那样做了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/211.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python学习笔记(高级篇)</title>
		<link>http://www.woniu.us/python/160.html</link>
		<comments>http://www.woniu.us/python/160.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 14:40:33 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[python基础]]></category>
		<category><![CDATA[python手册]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/python/160.html</guid>
		<description><![CDATA[Python中有三种内建的数据结构——列表、元组和字典

列表为可变数据类型，元组为不可变数据类型]]></description>
			<content:encoded><![CDATA[<p> </p>
<h1>数据结构</h1>
<p>Python中有三种内建的数据结构——列表、元组和字典</p>
<p>列表为可变数据类型，元组为不可变数据类型</p>
<p><strong>列表</strong></p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">shoplist = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'apple'</span>, <span style="color: #483d8b;">'mango'</span>, <span style="color: #483d8b;">'carrot'</span>, <span style="color: #483d8b;">'banana'</span><span style="color: black;">&#93;</span><br />
<br />
shoplist.<span style="color: black;">append</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'rice'</span><span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;">#在列表最后添加一个元素</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> shoplist <span style="color: #808080; font-style: italic;">#直接输出这个列表</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">del</span> shoplist<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>  <span style="color: #808080; font-style: italic;">#删除一个元素</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> shoplist<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span>:<span style="color: #ff4500;">3</span><span style="color: black;">&#93;</span><br />
&nbsp;<span style="color: #808080; font-style: italic;">#&lt;span style=&quot;color: #ff0000;&quot;&gt;注意：&lt;/span&gt;输出第二个与第三个元素</span></div></div>
<p><strong>元组</strong> （元组与列表很像，只不过元组不能修改）</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">zoo = <span style="color: black;">&#40;</span><span style="color: #483d8b;">'wolf'</span>, <span style="color: #483d8b;">'elephant'</span>, <span style="color: #483d8b;">'penguin'</span><span style="color: black;">&#41;</span><br />
<br />
new_zoo = <span style="color: black;">&#40;</span><span style="color: #483d8b;">'monkey'</span>, <span style="color: #483d8b;">'dolphin'</span>, zoo<span style="color: black;">&#41;</span><span style="color: #808080; font-style: italic;">#相当于一个二元数组</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span>  new_zoo<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span></div></div>
<p>空元组myempty = ()  单一元组 singleton = (2 , )</p>
<p><strong>元组与打印</strong> </p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">age = <span style="color: #ff4500;">22</span><br />
name = <span style="color: #483d8b;">'Swaroop'</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'%s is %d years old'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>name, age<span style="color: black;">&#41;</span></div></div>
<p><strong>字典</strong></p>
<p>字典就是将键和值联系在一起，并且键必须是唯一的，字典其实就像是PHP中的数组，但是字典中的键/值对是没有顺序的。字典是dict类的实例/对象。</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">d = <span style="color: black;">&#123;</span>‘key1’ :’ value1’, ‘key2’ : ‘value2’ <span style="color: black;">&#125;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> d<span style="color: black;">&#91;</span>‘key1’<span style="color: black;">&#93;</span><br />
<br />
d<span style="color: black;">&#91;</span>‘key3’<span style="color: black;">&#93;</span>=<span style="color: #ff4500;">4</span> <span style="color: #808080; font-style: italic;">#添加一个新的键值对到字典</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">del</span> d<span style="color: black;">&#91;</span>‘key1’<span style="color: black;">&#93;</span> <span style="color: #808080; font-style: italic;">#删除一个键值对</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">for</span> v1, v2 <span style="color: #ff7700;font-weight:bold;">in</span> d.<span style="color: black;">items</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:   <span style="color: #808080; font-style: italic;">#遍历字典 V1为键 V2为值</span><br />
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Contact %s at %s'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>v1,v2<span style="color: black;">&#41;</span></div></div>
<p><strong>序列</strong></p>
<p>列表、元组和字符串都是序列，但是序列是什么，它们为什么如此特别呢？序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片，即一部分序列</p>
<p><strong><span style="color: #ff0000;">参考 ！</span></strong></p>
<p>当你创建一个对象并给它赋一个变量的时候，这个变量仅仅 参考 那个对象，而不是表示这个对象本身！也就是说，变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span><br />
<span style="color: #808080; font-style: italic;"># Filename: reference.py</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Simple Assignment'</span><br />
shoplist = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'apple'</span>, <span style="color: #483d8b;">'mango'</span>, <span style="color: #483d8b;">'carrot'</span>, <span style="color: #483d8b;">'banana'</span><span style="color: black;">&#93;</span><br />
mylist = shoplist <span style="color: #808080; font-style: italic;"># mylist is just another name pointing to the same object!</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">del</span> shoplist<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'shoplist is'</span>, shoplist  //这里和下面的输出时一样的<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'mylist is'</span>, mylist       //与上面的输出是一样的<br />
<span style="color: #808080; font-style: italic;"># notice that both shoplist and mylist both print the same list without</span><br />
<span style="color: #808080; font-style: italic;"># the 'apple' confirming that they point to the same object</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Copy by making a full slice'</span><br />
mylist = shoplist<span style="color: black;">&#91;</span>:<span style="color: black;">&#93;</span> <span style="color: #808080; font-style: italic;"># make a copy by doing a full slice</span><br />
<span style="color: #808080; font-style: italic;">#这就是一个完整的拷贝，不管原来的如何改变，都不会影响到他</span><br />
<span style="color: #ff7700;font-weight:bold;">del</span> mylist<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> <span style="color: #808080; font-style: italic;"># remove first item</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'shoplist is'</span>, shoplist<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'mylist is'</span>, mylist<br />
<span style="color: #808080; font-style: italic;"># notice that now the two lists are different</span></div></div>
<p><span style="color: #ff0000;">你需要记住的只是如果你想要复制一个列表或者类似的序列或者其他复杂的对象（不是如整数那样的简单 对象 ），那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名，两个名称都 参考 同一个对象，那么如果你不小心的话，可能会引来各种麻烦。</span></p>
<h1> </h1>
<h1>类与对象</h1>
<p><span style="color: #ff0000;">注意，即便是整数也被作为对象（属于int类）</span></p>
<p>对象可以使用普通的 <dfn>属于</dfn> 对象的变量存储数据。属于一个对象或类的变量被称为域，对象也可以使用 属于 类的函数来具有功能。这样的函数被称为类的方法。这些术语帮助我们把它们与孤立的函数和变量区分开来。域和方法可以合称为类的属性。</p>
<p>域有两种类型——属于每个实例/类的对象或属于类本身。它们分别被称为实例变量和类变量</p>
<p><strong>self</strong></p>
<p>类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称，但是在调用这个方法的时候你不为这个参数赋值，Python会提供这个值。这个特别的变量指对象本身，按照惯例它的名称是self</p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> Person:<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name<span style="color: black;">&#41;</span>:  //构造函数，在类被实例化的时候便会运行<br />
        <span style="color: #008000;">self</span>.<span style="color: black;">name</span> = name //<span style="color: #008000;">self</span>.<span style="color: black;">name</span>创建一个类变量<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> sayHi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Hello, my name is'</span>, <span style="color: #008000;">self</span>.<span style="color: black;">name</span><br />
<br />
p = Person<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Swaroop'</span><span style="color: black;">&#41;</span><br />
p.<span style="color: black;">sayHi</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div>
<p><strong>类变量与对象变量</strong></p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> Person:<br />
    <span style="color: #dc143c;">test</span>=<span style="color: #ff4500;">1</span>//类变量   每次被实例化之后 他的值会一直保存着，就相当于静态变量<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name<span style="color: black;">&#41;</span>:<br />
        <span style="color: #008000;">self</span>.<span style="color: black;">name2</span> = name<br />
        Person.<span style="color: #dc143c;">test</span>=Person.<span style="color: #dc143c;">test</span>+<span style="color: #ff4500;">1</span><br />
    <span style="color: #ff7700;font-weight:bold;">def</span> sayHi<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
        <span style="color: #ff7700;font-weight:bold;">print</span> Person.<span style="color: #dc143c;">test</span><br />
<br />
p = Person<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Swaroop'</span><span style="color: black;">&#41;</span><br />
p.<span style="color: black;">sayHi</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br />
<br />
p2 = Person<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Swaroop'</span><span style="color: black;">&#41;</span><br />
p2.<span style="color: black;">sayHi</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div>
<p>Python中所有的类成员（包括数据成员）都是 公共的 ，所有的方法都是 有效的 。<br />
只有一个例外：如果你使用的数据成员名称以 双下划线前缀 比如__privatevar，Python的名称管理体系会有效地把它作为私有变量。<br />
这样就有一个惯例，如果某个变量只想在类或对象中使用，就应该以单下划线前缀。而其他的名称都将作为公共的，可以被其他类/对象使用。记住这只是一个惯例，并不是Python所要求的（与双下划线前缀不同）。<br />
同样，注意__del__方法与 destructor 的概念类似。</p>
<p><strong>继承</strong></p>
<div class="codecolorer-container python vibrant" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">class</span> SchoolMember:  //基类<br />
    <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'Represents any school member.'</span><span style="color: #483d8b;">''</span><br />
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name, age<span style="color: black;">&#41;</span>:<br />
        <span style="color: #008000;">self</span>.<span style="color: black;">name</span> = name<br />
        <span style="color: #008000;">self</span>.<span style="color: black;">age</span> = age<br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'(Initialized SchoolMember: %s)'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">name</span><br />
<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> tell<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
        <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'Tell my details.'</span><span style="color: #483d8b;">''</span><br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Name:&quot;%s&quot; Age:&quot;%s&quot;'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">name</span>, <span style="color: #008000;">self</span>.<span style="color: black;">age</span><span style="color: black;">&#41;</span>,<br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Teacher<span style="color: black;">&#40;</span>SchoolMember<span style="color: black;">&#41;</span>: //子类 继承的方法<br />
    <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'Represents a teacher.'</span><span style="color: #483d8b;">''</span><br />
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name, age, salary<span style="color: black;">&#41;</span>:<br />
        SchoolMember.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name, age<span style="color: black;">&#41;</span><br />
        <span style="color: #008000;">self</span>.<span style="color: black;">salary</span> = salary<br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'(Initialized Teacher: %s)'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">name</span><br />
<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> tell<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
        SchoolMember.<span style="color: black;">tell</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span><br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Salary: &quot;%d&quot;'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">salary</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">class</span> Student<span style="color: black;">&#40;</span>SchoolMember<span style="color: black;">&#41;</span>:<br />
    <span style="color: #483d8b;">''</span><span style="color: #483d8b;">'Represents a student.'</span><span style="color: #483d8b;">''</span><br />
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name, age, marks<span style="color: black;">&#41;</span>:<br />
        SchoolMember.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, name, age<span style="color: black;">&#41;</span><br />
        <span style="color: #008000;">self</span>.<span style="color: black;">marks</span> = marks<br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'(Initialized Student: %s)'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">name</span><br />
<br />
    <span style="color: #ff7700;font-weight:bold;">def</span> tell<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:<br />
        SchoolMember.<span style="color: black;">tell</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">&lt;</span>span style=<span style="color: #483d8b;">&quot;color: #ff0000;&quot;</span><span style="color: #66cc66;">&gt;</span>self<span style="color: #66cc66;">&lt;</span>/span<span style="color: #66cc66;">&gt;</span><span style="color: black;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;">#这里不使用self的话，就不会实例化基类</span><br />
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Marks: &quot;%d&quot;'</span> <span style="color: #66cc66;">%</span> <span style="color: #008000;">self</span>.<span style="color: black;">marks</span><br />
<br />
t = Teacher<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Mrs. Shrividya'</span>, <span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">30000</span><span style="color: black;">&#41;</span><br />
s = Student<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Swaroop'</span>, <span style="color: #ff4500;">22</span>, <span style="color: #ff4500;">75</span><span style="color: black;">&#41;</span><br />
<br />
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #808080; font-style: italic;"># prints a blank line</span><br />
<br />
members = <span style="color: black;">&#91;</span>t, s<span style="color: black;">&#93;</span><br />
<span style="color: #ff7700;font-weight:bold;">for</span> member <span style="color: #ff7700;font-weight:bold;">in</span> members:<br />
    member.<span style="color: black;">tell</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># works for both Teachers and Students</span></div></div>
<p><span style="color: #ff0000;">基本类的__init__方法专门使用self变量调用，这样我们就可以初始化对象的基本类部分。这一点十分重要——Python不会自动调用基本类的constructor，你得亲自专门调用它。</span></p>
<p>Python总是首先查找本类的方法，在这个例子中就是如此。如果它不能在本类中找到对应的方法，它才开始到基本类中逐个查找。基本类是在类定义的时候，在元组之中指明的。</p>
<p> </p>
<p><span style="color: #ff0000;"><strong>编码</strong></span></p>
<p>通过在文件头部加上#-*-coding:utf-8-*- 来定义文件的字符集</p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/160.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python学习笔记(初级篇)</title>
		<link>http://www.woniu.us/python/159.html</link>
		<comments>http://www.woniu.us/python/159.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 11:54:02 +0000</pubDate>
		<dc:creator>蜗牛</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[python基础]]></category>
		<category><![CDATA[笔记]]></category>

		<guid isPermaLink="false">http://snail.comsing.com/python/159.html</guid>
		<description><![CDATA[这是我学习python的一些笔记，方便自己记忆]]></description>
			<content:encoded><![CDATA[<h1>&#160;</h1>
<h1>输入输出：</h1>
<p>print 用来输出数据 print(“hello”)&#160; 高级用法 print “2+3=”,2+3</p>
<p>raw_input用来获取输入 x=raw_input(&quot;请输入一个数字：&quot;)</p>
<h1>&#160;</h1>
<h1>常量</h1>
<p><strong>数</strong>（4种类型的数）</p>
<p>整数：12345 长整数：大一点的整数 浮点数：3.14 复数：2.3-4.6j</p>
<p><strong>字符串</strong></p>
<p>单引号‘abc””def’(用来表示adc””def)</p>
<p>双引号“abc’def”(用来表示abc’def)</p>
<p>三引号&quot;&quot;&quot;adbc””efg’&quot;hi””” (利用三引号，你可以指示一个多行的字符串,三引号中间的字符串不需要转义)</p>
<p>转义符（可以用反斜杠转义单引号或者双引号）行末的单独一个反斜杠表示字符串在下一行继续，而不是开始一个新的行</p>
<p>自然字符串（自然字符串不会转义）</p>
<p>自然字符串通过给字符串加上前缀r或R来指定。例如r&quot;Newlines are indicated by \n&quot;。</p>
<p>Unicode字符串</p>
<p>Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如，u&quot;This is a Unicode string.&quot;。</p>
<p>PHPER注意：单引号和双引号字符串是完全相同的——它们没有在任何方面有不同。</p>
<h1>&#160;</h1>
<h1>变量</h1>
<p>python中变量不需要声明数据类型，而且也无需在变量名前加特殊的标识</p>
<p><strong>运算符</strong></p>
<p><a title="http://paper.sebug.net/python/ch05s02.html" href="http://paper.sebug.net/python/ch05s02.html">http://paper.sebug.net/python/ch05s02.html</a></p>
<h1>&#160;</h1>
<h1>流程控制</h1>
<p><strong>if语句：</strong></p>
<p>if a&gt;b&quot;:</p>
<p>&#160;&#160; 代码块1</p>
<p>elif a=b:</p>
<p>&#160;&#160; 代码块2</p>
<p>else:</p>
<p>&#160;&#160; 代码块3</p>
<p>注意：Python中没有switch语句</p>
<p><strong>While语句</strong></p>
<p>while a&gt;b:</p>
<p>&#160;&#160; print a;</p>
<p>else:</p>
<p>&#160;&#160; print ‘loop is over’</p>
<p>注意：else表示循环执行完毕</p>
<p><strong>for循环</strong></p>
<p>for&#160; i in range(1,5):</p>
<p>&#160; print i</p>
<p>else:</p>
<p>&#160; print ‘loop is over’</p>
<p>注意python中的for循环跟PHP语言中的不一样，python中的for有点像PHP中foreach</p>
<p>break语句：break用来终止循环,并且不会执行else块的语句</p>
<p>continue语句：用来跳过当前循环块中的剩余语句，然后 继续 进行下一轮循环</p>
<h1>&#160;</h1>
<h1>函数</h1>
<p><strong>自定义函数</strong></p>
<p>def printMax(a=3, b=3):</p>
<p>&#160;&#160; &#8221;&#8217;这是一个文档字符串，用来描述函数的作用以及使用方法&#8221;&#8217;</p>
<p>&#160;&#160;&#160; if a &gt; b:   <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print a, &#8216;is maximum&#8217;    <br />&#160;&#160;&#160; else:    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; print b, &#8216;is maximum&#8217; </p>
<p>&#160;&#160;&#160; return a</p>
<p>printMax(3, 4)</p>
<p>printMax(b=4, a=1)&#160; //<strong>关键参数</strong>，使用这种方法不必担心参数的顺序</p>
<p><strong>变量作用域</strong></p>
<p>在函数中的变量是局部变量</p>
<p><strong>global</strong> 声明全局变量 </p>
<p>def func():   <br />&#160;&#160;&#160; global x</p>
<h1>&#160;</h1>
<h1>模块</h1>
<p>模块就是一个包含了你所有定义了的变量与函数的文件，为了在其他程序中使用模块，模块必须用.py做扩展名</p>
<p>python标准库模块</p>
<p>import sys 如果你想要直接输入argv变量到你的程序中可以使用from sys import argv，如果要输入所有sys模块使用的名字，那么可以使用from sys import * 语句（每个模块都可以这样输入）</p>
<p><strong>模块的__name__</strong></p>
<p>__name__用PHP的说法就是一个系统常量，表示模块的名称，如果是在本模块里面，那么得到的__name__的值就是‘__main__’ 当被其他文件调用的时候得到的值就是被调用的模块的名称</p>
<p><strong>自定义模块</strong></p>
<p>#!/usr/bin/python   <br /># Filename: mymodule.py </p>
<p>def sayhi():   <br />&#160;&#160;&#160; print &#8216;Hi, this is mymodule speaking.&#8217; </p>
<p>version = &#8216;0.1&#8242; </p>
<p># End of mymodule.py</p>
<p>下面调用这个模块</p>
<p>import mymodule </p>
<p>mymodule.sayhi()   <br />print &#8216;Version&#8217;, mymodule.version </p>
]]></content:encoded>
			<wfw:commentRss>http://www.woniu.us/python/159.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
