ebook img

Effective Python PDF

683 Pages·2015·12.27 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Effective Python

About This eBook ePUB is an open, industry-standard format for eBooks. However, support of ePUB and its many features varies across reading devices and applications. Use your device or app settings to customize the presentation to your liking. Settings that you can customize often include font, font size, single or double column, landscape or portrait mode, and figures that you can click or tap to enlarge. For additional information about the settings and features on your reading device or app, visit the device manufacturer’s Web site. Many titles include programming code or configuration examples. To optimize the presentation of these elements, view the eBook in single-column, landscape mode and adjust the font size to the smallest setting. In addition to presenting code and configurations in the reflowable text format, we have included images of the code that mimic the presentation found in the print book; therefore, where the reflowable format may compromise the presentation of the code listing, you will see a “Click here to view code image” link. Click the link to view the print-fidelity code image. To return to the previous page viewed, click the Back button on your device or app. Effective Python 59 SPECIFIC WAYS TO WRITE BETTER PYTHON Brett Slatkin Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales department at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the United States, please contact [email protected]. Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data Slatkin, Brett, author. Effective Python : 59 specific ways to write better Python / Brett Slatkin. pages cm Includes index. ISBN 978-0-13-403428-7 (pbk. : alk. paper)—ISBN 0-13-403428-7 (pbk. : alk. paper) 1. Python (Computer program language) 2. Computer programming. I. Title. QA76.73.P98S57 2015 005.13’3—dc23 2014048305 Copyright © 2015 Pearson Education, Inc. All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. To obtain permission to use material from this work, please submit a written request to Pearson Education, Inc., Permissions Department, One Lake Street, Upper Saddle River, New Jersey 07458, or you may fax your request to (201) 236-3290. ISBN-13: 978-0-13-403428-7 ISBN-10: 0-13-403428-7 Text printed in the United States on recycled paper at RR Donnelley in Crawfordsville, Indiana. First printing, March 2015 Editor-in-Chief Mark L. Taub Senior Acquisitions Editor Trina MacDonald Managing Editor John Fuller Full-Service Production Manager Julie B. Nahil Copy Editor Stephanie Geels Indexer Jack Lewis Proofreader Melissa Panagos Technical Reviewers Brett Cannon Tavis Rudd Mike Taylor Editorial Assistant Olivia Basegio Cover Designer Chuti Prasertsith Compositor LaurelTech Praise for Effective Python “Each item in Slatkin’s Effective Python teaches a self-contained lesson with its own source code. This makes the book random-access: Items are easy to browse and study in whatever order the reader needs. I will be recommending Effective Python to students as an admirably compact source of mainstream advice on a very broad range of topics for the intermediate Python programmer.” —Brandon Rhodes, software engineer at Dropbox and chair of PyCon 2016-2017 “I’ve been programming in Python for years and thought I knew it pretty well. Thanks to this treasure trove of tips and techniques, I realize there’s so much more I could be doing with my Python code to make it faster (e.g., using built-in data structures), easier to read (e.g., enforcing keyword-only arguments), and much more Pythonic (e.g., using zip to iterate over lists in parallel).” —Pamela Fox, educationeer, Khan Academy “If I had this book when I first switched from Java to Python, it would have saved me many months of repeated code rewrites, which happened each time I realized I was doing particular things ‘non-Pythonically.’ This book collects the vast majority of basic Python ‘must-knows’ into one place, eliminating the need to stumble upon them one-by-one over the course of months or years. The scope of the book is impressive, starting with the importance of PEP8 as well as that of major Python idioms, then reaching through function, method and class design, effective standard library use, quality API design, testing, and performance measurement—this book really has it all. A fantastic introduction to what it really means to be a Python programmer for both the novice and the experienced developer.” —Mike Bayer, creator of SQLAlchemy “Effective Python will take your Python skills to the next level with clear guidelines for improving Python code style and function.” —Leah Culver, developer advocate, Dropbox “This book is an exceptionally great resource for seasoned developers in other languages who are looking to quickly pick up Python and move beyond the basic language constructs into more Pythonic code. The organization of the book is clear, concise, and easy to digest, and each item and chapter can stand on its own as a meditation on a particular topic. The book covers the breadth of language constructs in pure Python without confusing the reader with the complexities of the broader Python ecosystem. For more seasoned developers the book provides in-depth examples of language constructs they may not have previously encountered, and provides examples of less commonly used language features. It is clear that the author is exceptionally facile with Python, and he uses his professional experience to alert the reader to common subtle bugs and common failure modes. Furthermore, the book does an excellent job of pointing out subtleties between Python 2.X and Python 3.X and could serve as a refresher course as one transitions between variants of Python.” —Katherine Scott, software lead, Tempo Automation “This is a great book for both novice and experienced programmers. The code examples and explanations are well thought out and explained concisely and thoroughly.” —C. Titus Brown, associate professor, UC Davis “This is an immensely useful resource for advanced Python usage and building cleaner, more maintainable software. Anyone looking to take their Python skills to the next level would benefit from putting the book’s advice into practice.” —Wes McKinney, creator of pandas; author of Python for Data Analysis; and software engineer at Cloudera To our family, loved and lost Contents Preface Acknowledgments About the Author Chapter 1: Pythonic Thinking Item 1: Know Which Version of Python You’re Using Item 2: Follow the PEP 8 Style Guide Item 3: Know the Differences Between bytes, str, and unicode Item 4: Write Helper Functions Instead of Complex Expressions Item 5: Know How to Slice Sequences Item 6: Avoid Using start, end, and stride in a Single Slice Item 7: Use List Comprehensions Instead of map and filter Item 8: Avoid More Than Two Expressions in List Comprehensions Item 9: Consider Generator Expressions for Large Comprehensions Item 10: Prefer enumerate Over range Item 11: Use zip to Process Iterators in Parallel Item 12: Avoid else Blocks After for and while Loops Item 13: Take Advantage of Each Block in try/except/else/finally Chapter 2: Functions Item 14: Prefer Exceptions to Returning None Item 15: Know How Closures Interact with Variable Scope Item 16: Consider Generators Instead of Returning Lists Item 17: Be Defensive When Iterating Over Arguments Item 18: Reduce Visual Noise with Variable Positional Arguments Item 19: Provide Optional Behavior with Keyword Arguments Item 20: Use None and Docstrings to Specify Dynamic Default Arguments Item 21: Enforce Clarity with Keyword-Only Arguments Chapter 3: Classes and Inheritance Item 22: Prefer Helper Classes Over Bookkeeping with Dictionaries and Tuples Item 23: Accept Functions for Simple Interfaces Instead of Classes Item 24: Use @classmethod Polymorphism to Construct Objects Generically

Description:
It's useful to view some of the examples in this book as whole programs without interleaved prose. Python includes syntax for slicing sequences into pieces. Slicing lets names = ['Socrates', 'Archimedes', 'Plato', 'Aristotle'] (http://nose.readthedocs.org/) and pytest (http://pytest.org/) open so
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.