Differences between revisions 7 and 8
Revision 7 as of 2004-08-19 23:29:16
Size: 10371
Editor: Zoom.Quiet
Comment: zhDiveIntoPyTemplate
Revision 8 as of 2009-12-25 07:18:54
Size: 10371
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
-- Zoom.Quiet [[[DateTime(2004-08-19T21:52:55Z)]]]
[[TableOfContents]]
-- Zoom.Quiet [<<DateTime(2004-08-19T21:52:55Z)>>]
<<TableOfContents>>
Line 27: Line 27:
 * ["/1."] Installing Python
 * ["/1.1."] Which Python is right for you?
 * ["/1.2."] Python on Windows
 * ["/1.3."] Python on Mac OS X
 * ["/1.4."] Python on Mac OS 9
 * ["/1.5."] Python on RedHat Linux
 * ["/1.6."] Python on Debian GNU/Linux
 * ["/1.7."] Python Installation from Source
 * ["/1.8."] The Interactive Shell
 * ["/1.9."] Summary
 * [[/1.]] Installing Python
 * [[/1.1.]] Which Python is right for you?
 * [[/1.2.]] Python on Windows
 * [[/1.3.]] Python on Mac OS X
 * [[/1.4.]] Python on Mac OS 9
 * [[/1.5.]] Python on RedHat Linux
 * [[/1.6.]] Python on Debian GNU/Linux
 * [[/1.7.]] Python Installation from Source
 * [[/1.8.]] The Interactive Shell
 * [[/1.9.]] Summary
Line 40: Line 40:
 * ["/2."] Your First Python Program
 * ["/2.1."] Diving in
 * ["/2.2."] Declaring Functions
 * ["/2.2.1."] How Python's Datatypes Compare to Other Programming Languages
 * ["/2.3."] Documenting Functions
 * ["/2.4."] Everything Is an Object
 * ["/2.4.1."] The Import Search Path
 * ["/2.4.2."] What's an Object?
 * ["/2.5."] Indenting Code
 * ["/2.6."] Testing Modules
 * [[/2.]] Your First Python Program
 * [[/2.1.]] Diving in
 * [[/2.2.]] Declaring Functions
 * [[/2.2.1.]] How Python's Datatypes Compare to Other Programming Languages
 * [[/2.3.]] Documenting Functions
 * [[/2.4.]] Everything Is an Object
 * [[/2.4.1.]] The Import Search Path
 * [[/2.4.2.]] What's an Object?
 * [[/2.5.]] Indenting Code
 * [[/2.6.]] Testing Modules
Line 52: Line 52:
 * ["/3."] Native Datatypes
 * ["/3.1."] Introducing Dictionaries
 * ["/3.1.1."] Defining Dictionaries
 * ["/3.1.2."] Modifying Dictionaries
 * ["/3.1.3."] Deleting Items From Dictionaries
 * ["/3.2."] Introducing Lists
 * ["/3.2.1."] Defining Lists
 * ["/3.2.2."] Adding Elements to Lists
 * ["/3.2.3."] Searching Lists
 * ["/3.2.4."] Deleting List Elements
 * ["/3.2.5."] Using List Operators
 * ["/3.3."] Introducing Tuples
 * ["/3.4."] Declaring variables
 * ["/3.4.1."] Referencing Variables
 * ["/3.4.2."] Assigning Multiple Values at Once
 * ["/3.5."] Formatting Strings
 * ["/3.6."] Mapping Lists
 * ["/3.7."] Joining Lists and Splitting Strings
 * ["/3.7.1."] Historical Note on String Methods
 * ["/3.8."] Summary
 * [[/3.]] Native Datatypes
 * [[/3.1.]] Introducing Dictionaries
 * [[/3.1.1.]] Defining Dictionaries
 * [[/3.1.2.]] Modifying Dictionaries
 * [[/3.1.3.]] Deleting Items From Dictionaries
 * [[/3.2.]] Introducing Lists
 * [[/3.2.1.]] Defining Lists
 * [[/3.2.2.]] Adding Elements to Lists
 * [[/3.2.3.]] Searching Lists
 * [[/3.2.4.]] Deleting List Elements
 * [[/3.2.5.]] Using List Operators
 * [[/3.3.]] Introducing Tuples
 * [[/3.4.]] Declaring variables
 * [[/3.4.1.]] Referencing Variables
 * [[/3.4.2.]] Assigning Multiple Values at Once
 * [[/3.5.]] Formatting Strings
 * [[/3.6.]] Mapping Lists
 * [[/3.7.]] Joining Lists and Splitting Strings
 * [[/3.7.1.]] Historical Note on String Methods
 * [[/3.8.]] Summary
Line 74: Line 74:
 * ["/4."] The Power Of Introspection
 * ["/4.1."] Diving In
 * ["/4.2."] Using Optional and Named Arguments
 * ["/4.3."] Using type, str, dir, and Other Built-In Functions
 * ["/4.3.1."] The type Function
 * ["/4.3.2."] The str Function
 * ["/4.3.3."] Built-In Functions
 * ["/4.4."] Getting Object References With getattr
 * ["/4.4.1."] getattr with Modules
 * ["/4.4.2."] getattr As a Dispatcher
 * ["/4.5."] Filtering Lists
 * ["/4.6."] The Peculiar Nature of and and or
 * ["/4.6.1."] Using the and-or Trick
 * ["/4.7."] Using lambda Functions
 * ["/4.7.1."] Real-World lambda Functions
 * ["/4.8."] Putting It All Together
 * ["/4.9."] Summary
 * [[/4.]] The Power Of Introspection
 * [[/4.1.]] Diving In
 * [[/4.2.]] Using Optional and Named Arguments
 * [[/4.3.]] Using type, str, dir, and Other Built-In Functions
 * [[/4.3.1.]] The type Function
 * [[/4.3.2.]] The str Function
 * [[/4.3.3.]] Built-In Functions
 * [[/4.4.]] Getting Object References With getattr
 * [[/4.4.1.]] getattr with Modules
 * [[/4.4.2.]] getattr As a Dispatcher
 * [[/4.5.]] Filtering Lists
 * [[/4.6.]] The Peculiar Nature of and and or
 * [[/4.6.1.]] Using the and-or Trick
 * [[/4.7.]] Using lambda Functions
 * [[/4.7.1.]] Real-World lambda Functions
 * [[/4.8.]] Putting It All Together
 * [[/4.9.]] Summary
Line 93: Line 93:
 * ["/5."] Objects and Object-Orientation
 * ["/5.1."] Diving In
 * ["/5.2."] Importing Modules Using from module import
 * ["/5.3."] Defining Classes
 * ["/5.3.1."] Initializing and Coding Classes
 * ["/5.3.2."] Knowing When to Use self and __init__
 * ["/5.4."] Instantiating Classes
 * ["/5.4.1."] Garbage Collection
 * ["/5.5."] Exploring UserDict: A Wrapper Class
 * ["/5.6."] Special Class Methods
 * ["/5.6.1."] Getting and Setting Items
 * ["/5.7."] Advanced Special Class Methods
 * ["/5.8."] Introducing Class Attributes
 * ["/5.9."] Private Functions
 * ["/5.10."] Summary
 * [[/5.]] Objects and Object-Orientation
 * [[/5.1.]] Diving In
 * [[/5.2.]] Importing Modules Using from module import
 * [[/5.3.]] Defining Classes
 * [[/5.3.1.]] Initializing and Coding Classes
 * [[/5.3.2.]] Knowing When to Use self and __init__
 * [[/5.4.]] Instantiating Classes
 * [[/5.4.1.]] Garbage Collection
 * [[/5.5.]] Exploring UserDict: A Wrapper Class
 * [[/5.6.]] Special Class Methods
 * [[/5.6.1.]] Getting and Setting Items
 * [[/5.7.]] Advanced Special Class Methods
 * [[/5.8.]] Introducing Class Attributes
 * [[/5.9.]] Private Functions
 * [[/5.10.]] Summary
Line 110: Line 110:
 * ["/6."] Exceptions and File Handling
 * ["/6.1."] Handling Exceptions
 * ["/6.1.1."] Using Exceptions For Other Purposes
 * ["/6.2."] Working with File Objects
 * ["/6.2.1."] Reading Files
 * ["/6.2.2."] Closing Files
 * ["/6.2.3."] Handling I/O Errors
 * ["/6.2.4."] Writing to Files
 * ["/6.3."] Iterating with for Loops
 * ["/6.4."] Using sys.modules
 * ["/6.5."] Working with Directories
 * ["/6.6."] Putting It All Together
 * ["/6.7."] Summary
 * [[/6.]] Exceptions and File Handling
 * [[/6.1.]] Handling Exceptions
 * [[/6.1.1.]] Using Exceptions For Other Purposes
 * [[/6.2.]] Working with File Objects
 * [[/6.2.1.]] Reading Files
 * [[/6.2.2.]] Closing Files
 * [[/6.2.3.]] Handling I/O Errors
 * [[/6.2.4.]] Writing to Files
 * [[/6.3.]] Iterating with for Loops
 * [[/6.4.]] Using sys.modules
 * [[/6.5.]] Working with Directories
 * [[/6.6.]] Putting It All Together
 * [[/6.7.]] Summary
Line 124: Line 124:
 * ["/7."] Regular Expressions
 * ["/7.1."] Diving In
 * ["/7.2."] Case Study: Street Addresses
 * ["/7.3."] Case Study: Roman Numerals
 * ["/7.3.1."] Checking for Thousands
 * ["/7.3.2."] Checking for Hundreds
 * ["/7.4."] Using the {n,m} Syntax
 * ["/7.4.1."] Checking for Tens and Ones
 * ["/7.5."] Verbose Regular Expressions
 * ["/7.6."] Case study: Parsing Phone Numbers
 * ["/7.7."] Summary
 * [[/7.]] Regular Expressions
 * [[/7.1.]] Diving In
 * [[/7.2.]] Case Study: Street Addresses
 * [[/7.3.]] Case Study: Roman Numerals
 * [[/7.3.1.]] Checking for Thousands
 * [[/7.3.2.]] Checking for Hundreds
 * [[/7.4.]] Using the {n,m} Syntax
 * [[/7.4.1.]] Checking for Tens and Ones
 * [[/7.5.]] Verbose Regular Expressions
 * [[/7.6.]] Case study: Parsing Phone Numbers
 * [[/7.7.]] Summary
Line 136: Line 136:
 * ["/8."] HTML Processing
 * ["/8.1."] Diving in
 * ["/8.2."] Introducing sgmllib.py
 * ["/8.3."] Extracting data from HTML documents
 * ["/8.4."] Introducing BaseHTMLProcessor.py
 * ["/8.5."] locals and globals
 * ["/8.6."] Dictionary-based string formatting
 * ["/8.7."] Quoting attribute values
 * ["/8.8."] Introducing dialect.py
 * ["/8.9."] Putting it all together
 * ["/8.10."] Summary
 * [[/8.]] HTML Processing
 * [[/8.1.]] Diving in
 * [[/8.2.]] Introducing sgmllib.py
 * [[/8.3.]] Extracting data from HTML documents
 * [[/8.4.]] Introducing BaseHTMLProcessor.py
 * [[/8.5.]] locals and globals
 * [[/8.6.]] Dictionary-based string formatting
 * [[/8.7.]] Quoting attribute values
 * [[/8.8.]] Introducing dialect.py
 * [[/8.9.]] Putting it all together
 * [[/8.10.]] Summary
Line 148: Line 148:
 * ["/9."] XML Processing
 * ["/9.1."] Diving in
 * ["/9.2."] Packages
 * ["/9.3."] Parsing XML
 * ["/9.4."] Unicode
 * ["/9.5."] Searching for elements
 * ["/9.6."] Accessing element attributes
 * ["/9.7."] Segue
 * [[/9.]] XML Processing
 * [[/9.1.]] Diving in
 * [[/9.2.]] Packages
 * [[/9.3.]] Parsing XML
 * [[/9.4.]] Unicode
 * [[/9.5.]] Searching for elements
 * [[/9.6.]] Accessing element attributes
 * [[/9.7.]] Segue
Line 157: Line 157:
 * ["/10."] Scripts and Streams
 * ["/10.1."] Abstracting input sources
 * ["/10.2."] Standard input, output, and error
 * ["/10.3."] Caching node lookups
 * ["/10.4."] Finding direct children of a node
 * ["/10.5."] Creating separate handlers by node type
 * ["/10.6."] Handling command-line arguments
 * ["/10.7."] Putting it all together
 * ["/10.8."] Summary
 * [[/10.]] Scripts and Streams
 * [[/10.1.]] Abstracting input sources
 * [[/10.2.]] Standard input, output, and error
 * [[/10.3.]] Caching node lookups
 * [[/10.4.]] Finding direct children of a node
 * [[/10.5.]] Creating separate handlers by node type
 * [[/10.6.]] Handling command-line arguments
 * [[/10.7.]] Putting it all together
 * [[/10.8.]] Summary
Line 167: Line 167:
 * ["/11."] HTTP Web Services
 * ["/11.1."] Diving in
 * ["/11.2."] How not to fetch data over HTTP
 * ["/11.3."] Features of HTTP
 * ["/11.3.1."] User-Agent
 * ["/11.3.2."] Redirects
 * ["/11.3.3."] Last-Modified/If-Modified-Since
 * ["/11.3.4."] ETag/If-None-Match
 * ["/11.3.5."] Compression
 * ["/11.4."] Debugging HTTP web services
 * ["/11.5."] Setting the User-Agent
 * ["/11.6."] Handling Last-Modified and ETag
 * ["/11.7."] Handling redirects
 * ["/11.8."] Handling compressed data
 * ["/11.9."] Putting it all together
 * ["/11.10."] Summary
 * [[/11.]] HTTP Web Services
 * [[/11.1.]] Diving in
 * [[/11.2.]] How not to fetch data over HTTP
 * [[/11.3.]] Features of HTTP
 * [[/11.3.1.]] User-Agent
 * [[/11.3.2.]] Redirects
 * [[/11.3.3.]] Last-Modified/If-Modified-Since
 * [[/11.3.4.]] ETag/If-None-Match
 * [[/11.3.5.]] Compression
 * [[/11.4.]] Debugging HTTP web services
 * [[/11.5.]] Setting the User-Agent
 * [[/11.6.]] Handling Last-Modified and ETag
 * [[/11.7.]] Handling redirects
 * [[/11.8.]] Handling compressed data
 * [[/11.9.]] Putting it all together
 * [[/11.10.]] Summary
Line 184: Line 184:
 * ["/12."] SOAP Web Services
 * ["/12.1."] Diving In
 * ["/12.2."] Installing the SOAP Libraries
 * ["/12.2.1."] Installing PyXML
 * ["/12.2.2."] Installing fpconst
 * ["/12.2.3."] Installing SOAPpy
 * ["/12.3."] First Steps with SOAP
 * ["/12.4."] Debugging SOAP Web Services
 * ["/12.5."] Introducing WSDL
 * ["/12.6."] Introspecting SOAP Web Services with WSDL
 * ["/12.7."] Searching Google
 * ["/12.8."] Troubleshooting SOAP Web Services
 * ["/12.9."] Summary
 * [[/12.]] SOAP Web Services
 * [[/12.1.]] Diving In
 * [[/12.2.]] Installing the SOAP Libraries
 * [[/12.2.1.]] Installing PyXML
 * [[/12.2.2.]] Installing fpconst
 * [[/12.2.3.]] Installing SOAPpy
 * [[/12.3.]] First Steps with SOAP
 * [[/12.4.]] Debugging SOAP Web Services
 * [[/12.5.]] Introducing WSDL
 * [[/12.6.]] Introspecting SOAP Web Services with WSDL
 * [[/12.7.]] Searching Google
 * [[/12.8.]] Troubleshooting SOAP Web Services
 * [[/12.9.]] Summary
Line 198: Line 198:
 * ["/13."] Unit Testing
 * ["/13.1."] Introduction to Roman numerals
 * ["/13.2."] Diving in
 * ["/13.3."] Introducing romantest.py
 * ["/13.4."] Testing for success
 * ["
/13.5."] Testing for failure
 * ["/13.6."] Testing for sanity
 * [[/13.]] Unit Testing
 * [[/13.1.]] Introduction to Roman numerals
 * [[/13.2.]] Diving in
 * [[/13.3.]] Introducing romantest.py
 * [[/13.4.]] Testing for success
 * [[
/13.5.]] Testing for failure
 * [[/13.6.]] Testing for sanity
Line 206: Line 206:
 * ["/14."] Test-First Programming
 * ["/14.1."] roman.py, stage 1
 * ["/14.2."] roman.py, stage 2
 * ["/14.3."] roman.py, stage 3
 * ["/14.4."] roman.py, stage 4
 * ["/14.5."] roman.py, stage 5
 * [[/14.]] Test-First Programming
 * [[/14.1.]] roman.py, stage 1
 * [[/14.2.]] roman.py, stage 2
 * [[/14.3.]] roman.py, stage 3
 * [[/14.4.]] roman.py, stage 4
 * [[/14.5.]] roman.py, stage 5
Line 213: Line 213:
 * ["/15."] Refactoring
 * ["/15.1."] Handling bugs
 * ["/15.2."] Handling changing requirements
 * ["/15.3."] Refactoring
 * ["/15.4."] Postscript
 * ["/15.5."] Summary
 * [[/15.]] Refactoring
 * [[/15.1.]] Handling bugs
 * [[/15.2.]] Handling changing requirements
 * [[/15.3.]] Refactoring
 * [[/15.4.]] Postscript
 * [[/15.5.]] Summary
Line 220: Line 220:
 * ["/16."] Functional Programming
 * ["/16.1."] Diving in
 * ["/16.2."] Finding the path
 * ["/16.3."] Filtering lists revisited
 * ["/16.4."] Mapping lists revisited
 * ["/16.5."] Data-centric programming
 * ["/16.6."] Dynamically importing modules
 * ["/16.7."] Putting it all together
 * ["/16.8."] Summary
 * [[/16.]] Functional Programming
 * [[/16.1.]] Diving in
 * [[/16.2.]] Finding the path
 * [[/16.3.]] Filtering lists revisited
 * [[/16.4.]] Mapping lists revisited
 * [[/16.5.]] Data-centric programming
 * [[/16.6.]] Dynamically importing modules
 * [[/16.7.]] Putting it all together
 * [[/16.8.]] Summary
Line 230: Line 230:
 * ["/17."] Dynamic functions
 * ["/17.1."] Diving in
 * ["/17.2."] plural.py, stage 1
 * ["
/17.3."] plural.py, stage 2
 * ["/17.4."] plural.py, stage 3
 * ["/17.5."] plural.py, stage 4
 * ["/17.6."] plural.py, stage 5
 * ["/17.7."] plural.py, stage 6
 * ["/17.8."] Summary
 * [[/17.]] Dynamic functions
 * [[/17.1.]] Diving in
 * [[/17.2.]] plural.py, stage 1
 * [[
/17.3.]] plural.py, stage 2
 * [[/17.4.]] plural.py, stage 3
 * [[/17.5.]] plural.py, stage 4
 * [[/17.6.]] plural.py, stage 5
 * [[/17.7.]] plural.py, stage 6
 * [[/17.8.]] Summary
Line 240: Line 240:
 * ["/18."] Performance Tuning
 * ["/18.1."] Diving in
 * ["/18.2."] Using the timeit Module
 * ["/18.3."] Optimizing Regular Expressions
 * ["/18.4."] Optimizing Dictionary Lookups
 * ["/18.5."] Optimizing List Operations
 * ["/18.6."] Optimizing String Manipulation
 * [[/18.]] Performance Tuning
 * [[/18.1.]] Diving in
 * [[/18.2.]] Using the timeit Module
 * [[/18.3.]] Optimizing Regular Expressions
 * [[/18.4.]] Optimizing Dictionary Lookups
 * [[/18.5.]] Optimizing List Operations
 * [[/18.6.]] Optimizing String Manipulation
Line 248: Line 248:
 * ["/18.7."] Summary
 * ["/A."] Further reading
 * ["/B."] A 5-minute review
 * ["/C."] Tips and tricks
 * ["/D."] List of examples
 * ["/E."] Revision history
 * ["/F."] About the book
 * ["/G."] GNU Free Documentation License
 * ["/G.0."] Preamble
 * ["/G.1."] Applicability and definitions
 * ["/G.2."] Verbatim copying
 * ["/G.3."] Copying in quantity
 * ["/G.4."] Modifications
 * ["/G.5."] Combining documents
 * ["/G.6."] Collections of documents
 * ["/G.7."] Aggregation with independent works
 * ["/G.8."] Translation
 * ["/G.9."] Termination
 * ["/G.10."] Future revisions of this license
 * ["/G.11."] How to use this License for your documents
 * ["/H."] Python license
 * ["/H.A."] History of the software
 * ["/H.B."] Terms and conditions for accessing or otherwise using Python
 * ["/H.B.1."] PSF license agreement
 * ["/H.B.2."] BeOpen Python open source license agreement version 1
 * ["/H.B.3."] CNRI open source GPL-compatible license agreement
 * ["/H.B.4."] CWI permissions statement and disclaimer
 * [[/18.7.]] Summary
 * [[/A.]] Further reading
 * [[/B.]] A 5-minute review
 * [[/C.]] Tips and tricks
 * [[/D.]] List of examples
 * [[/E.]] Revision history
 * [[/F.]] About the book
 * [[/G.]] GNU Free Documentation License
 * [[/G.0.]] Preamble
 * [[/G.1.]] Applicability and definitions
 * [[/G.2.]] Verbatim copying
 * [[/G.3.]] Copying in quantity
 * [[/G.4.]] Modifications
 * [[/G.5.]] Combining documents
 * [[/G.6.]] Collections of documents
 * [[/G.7.]] Aggregation with independent works
 * [[/G.8.]] Translation
 * [[/G.9.]] Termination
 * [[/G.10.]] Future revisions of this license
 * [[/G.11.]] How to use this License for your documents
 * [[/H.]] Python license
 * [[/H.A.]] History of the software
 * [[/H.B.]] Terms and conditions for accessing or otherwise using Python
 * [[/H.B.1.]] PSF license agreement
 * [[/H.B.2.]] BeOpen Python open source license agreement version 1
 * [[/H.B.3.]] CNRI open source GPL-compatible license agreement
 * [[/H.B.4.]] CWI permissions statement and disclaimer

深入Python 5.4 版本,中文翻译!

建议使用 zhDiveIntoPyTemplate 文章模板!

-- Zoom.Quiet [2004-08-19 21:52:55]

Dive Into Python

20 May 2004

Copyright © 2000, 2001, 2002, 2003, 2004 Mark Pilgrim

This book lives at http://diveintopython.org/. If you're reading it somewhere else, you may not have the latest version.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in Appendix G, GNU Free Documentation License.

The example programs in this book are free software; you can redistribute and/or modify them under the terms of the Python license as published by the Python Software Foundation. A copy of the license is included in Appendix H, Python license.

章节索引

Installing Python

  • /1. Installing Python

  • /1.1. Which Python is right for you?

  • /1.2. Python on Windows

  • /1.3. Python on Mac OS X

  • /1.4. Python on Mac OS 9

  • /1.5. Python on RedHat Linux

  • /1.6. Python on Debian GNU/Linux

  • /1.7. Python Installation from Source

  • /1.8. The Interactive Shell

  • /1.9. Summary

Your First Python Program

  • /2. Your First Python Program

  • /2.1. Diving in

  • /2.2. Declaring Functions

  • /2.2.1. How Python's Datatypes Compare to Other Programming Languages

  • /2.3. Documenting Functions

  • /2.4. Everything Is an Object

  • /2.4.1. The Import Search Path

  • /2.4.2. What's an Object?

  • /2.5. Indenting Code

  • /2.6. Testing Modules

Native Datatypes

The Power Of Introspection

  • /4. The Power Of Introspection

  • /4.1. Diving In

  • /4.2. Using Optional and Named Arguments

  • /4.3. Using type, str, dir, and Other Built-In Functions

  • /4.3.1. The type Function

  • /4.3.2. The str Function

  • /4.3.3. Built-In Functions

  • /4.4. Getting Object References With getattr

  • /4.4.1. getattr with Modules

  • /4.4.2. getattr As a Dispatcher

  • /4.5. Filtering Lists

  • /4.6. The Peculiar Nature of and and or

  • /4.6.1. Using the and-or Trick

  • /4.7. Using lambda Functions

  • /4.7.1. Real-World lambda Functions

  • /4.8. Putting It All Together

  • /4.9. Summary

Objects and Object-Orientation

  • /5. Objects and Object-Orientation

  • /5.1. Diving In

  • /5.2. Importing Modules Using from module import

  • /5.3. Defining Classes

  • /5.3.1. Initializing and Coding Classes

  • /5.3.2. Knowing When to Use self and init

  • /5.4. Instantiating Classes

  • /5.4.1. Garbage Collection

  • /5.5. Exploring UserDict: A Wrapper Class

  • /5.6. Special Class Methods

  • /5.6.1. Getting and Setting Items

  • /5.7. Advanced Special Class Methods

  • /5.8. Introducing Class Attributes

  • /5.9. Private Functions

  • /5.10. Summary

Exceptions and File Handling

Regular Expressions

  • /7. Regular Expressions

  • /7.1. Diving In

  • /7.2. Case Study: Street Addresses

  • /7.3. Case Study: Roman Numerals

  • /7.3.1. Checking for Thousands

  • /7.3.2. Checking for Hundreds

  • /7.4. Using the {n,m} Syntax

  • /7.4.1. Checking for Tens and Ones

  • /7.5. Verbose Regular Expressions

  • /7.6. Case study: Parsing Phone Numbers

  • /7.7. Summary

HTML Processing

  • /8. HTML Processing

  • /8.1. Diving in

  • /8.2. Introducing sgmllib.py

  • /8.3. Extracting data from HTML documents

  • /8.4. Introducing BaseHTMLProcessor.py

  • /8.5. locals and globals

  • /8.6. Dictionary-based string formatting

  • /8.7. Quoting attribute values

  • /8.8. Introducing dialect.py

  • /8.9. Putting it all together

  • /8.10. Summary

XML Processing

Scripts and Streams

  • /10. Scripts and Streams

  • /10.1. Abstracting input sources

  • /10.2. Standard input, output, and error

  • /10.3. Caching node lookups

  • /10.4. Finding direct children of a node

  • /10.5. Creating separate handlers by node type

  • /10.6. Handling command-line arguments

  • /10.7. Putting it all together

  • /10.8. Summary

HTTP Web Services

SOAP Web Services

Unit Testing

Test-First Programming

Refactoring

Functional Programming

Dynamic functions

Performance Tuning

  • /18. Performance Tuning

  • /18.1. Diving in

  • /18.2. Using the timeit Module

  • /18.3. Optimizing Regular Expressions

  • /18.4. Optimizing Dictionary Lookups

  • /18.5. Optimizing List Operations

  • /18.6. Optimizing String Manipulation

Summary

  • /18.7. Summary

  • /A. Further reading

  • /B. A 5-minute review

  • /C. Tips and tricks

  • /D. List of examples

  • /E. Revision history

  • /F. About the book

  • /G. GNU Free Documentation License

  • /G.0. Preamble

  • /G.1. Applicability and definitions

  • /G.2. Verbatim copying

  • /G.3. Copying in quantity

  • /G.4. Modifications

  • /G.5. Combining documents

  • /G.6. Collections of documents

  • /G.7. Aggregation with independent works

  • /G.8. Translation

  • /G.9. Termination

  • /G.10. Future revisions of this license

  • /G.11. How to use this License for your documents

  • /H. Python license

  • /H.A. History of the software

  • /H.B. Terms and conditions for accessing or otherwise using Python

  • /H.B.1. PSF license agreement

  • /H.B.2. BeOpen Python open source license agreement version 1

  • /H.B.3. CNRI open source GPL-compatible license agreement

  • /H.B.4. CWI permissions statement and disclaimer

Wiki小工具

  • 手工加 Wiki 的页面声明太 SB 了!
  • Python 来帮忙!

f=open("DinPy",'r')
s=f.read()
#print s
import re
def wikiName(matchobj):
    return " * [\"/%s\"] "%matchobj.group(0)[:-1]
    
key = re.compile(r"(^\w[.|0-9a-zA-Z]+?)\s",re.M)
r=re.sub(key,wikiName,s)
print r
open("DinPy.wiki",'w').write(r)

zhDiveIntoPython (last edited 2009-12-25 07:18:54 by localhost)