Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Mastering Python
Mastering Python

Mastering Python: Master the art of writing beautiful and powerful Python by using all of the features that Python 3.5 offers

eBook
$9.99 $35.99
Paperback
$43.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Mastering Python

Chapter 2. Pythonic Syntax, Common Pitfalls, and Style Guide

The design and development of the Python programming language have always been in the hands of its original author, Guido van Rossum, in many cases lovingly referred to as the Benevolent Dictator For Life (BDFL). Even though van Rossum is thought to have a time machine (he has repeatedly answered feature requests with "I just implemented that last night": http://www.catb.org/jargon/html/G/Guido.html), he is still just a human and needs help with the maintenance and development of Python. To facilitate that, the Python Enhancement Proposal (PEP) process has been developed. This process allows anyone to submit a PEP with a technical specification of the feature and a rationale to defend its usefulness. After a discussion on the Python mailing lists and possibly some improvements, the BDFL will make a decision to accept or reject the proposal.

The Python style guide (PEP 8: https://www.python.org/dev/peps/pep-0008...

Code style – or what is Pythonic code?

Pythonic code—when you first hear of it, you might think it is a programming paradigm, similar to object-oriented or functional programming. While some of it could be considered as such, it is actually more of a design philosophy. Python leaves you free to choose to program in an object-oriented, procedural, functional, aspect-oriented or even logic-oriented way. These freedoms make Python a great language to write in, but as always, freedom has the drawback of requiring a lot of discipline to keep the code clean and readable. The PEP8 standard tells us how to format code, but there is more to Pythonic code than syntax alone. That is what the Pythonic philosophy (PEP20) is all about, code that is:

  • Clean
  • Simple
  • Beautiful
  • Explicit
  • Readable

Most of these sound like common sense, and I think they should be. There are cases however, where there is not a single obvious way to do it (unless you're Dutch, of course, as you'll read later...

Common pitfalls

Python is a language meant to be clear and readable without any ambiguities and unexpected behaviors. Unfortunately, these goals are not achievable in all cases, and that is why Python does have a few corner cases where it might do something different than what you were expecting.

This section will show you some issues that you might encounter when writing Python code.

Scope matters!

There are a few cases in Python where you might not be using the scope that you are actually expecting. Some examples are when declaring a class and with function arguments.

Function arguments

The following example shows a case that breaks due to a careless choice in default parameters:

def spam(key, value, list_=[], dict_={}):
    list_.append(value)
    dict_[key] = value

    print('List: %r' % list_)
    print('Dict: %r' % dict_)

spam('key 1', 'value 1')
spam('key 2', 'value 2')

You would probably expect the following output:

List: [&apos...

Summary

This chapter showed us what the Pythonic philosophy is all about and explained to us what the Zen of Python is all about. While code style is highly personal, Python has a few, very helpful guidelines that at least keep people mostly on the same page and style. In the end, we are all consenting adults; everyone has the right to write code as he/she sees fit. But I do request you. Please read through the style guides and try to adhere to them unless you have a really good reason not to.

With all that power comes great responsibility, and so do a few pitfalls, though there aren't too many. Some are tricky enough to fool me regularly and I've been writing Python for a long time! Python improves all the time though. Many pitfalls have been taken care of since Python 2, but some will always remain. For example, recursive imports and definitions can easily bite you in most languages that support them, but that doesn't mean we'll stop trying to improve Python.

A good...

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • • Become familiar with the most important and advanced parts of the Python code style
  • • Learn the trickier aspects of Python and put it in a structured context for deeper understanding of the language
  • • Offers an expert's-eye overview of how these advanced tasks fit together in Python as a whole along with practical examples

Description

Python is a dynamic programming language. It is known for its high readability and hence it is often the first language learned by new programmers. Python being multi-paradigm, it can be used to achieve the same thing in different ways and it is compatible across different platforms. Even if you find writing Python code easy, writing code that is efficient, easy to maintain, and reuse is not so straightforward. This book is an authoritative guide that will help you learn new advanced methods in a clear and contextualised way. It starts off by creating a project-specific environment using venv, introducing you to different Pythonic syntax and common pitfalls before moving on to cover the functional features in Python. It covers how to create different decorators, generators, and metaclasses. It also introduces you to functools.wraps and coroutines and how they work. Later on you will learn to use asyncio module for asynchronous clients and servers. You will also get familiar with different testing systems such as py.test, doctest, and unittest, and debugging tools such as Python debugger and faulthandler. You will learn to optimize application performance so that it works efficiently across multiple machines and Python versions. Finally, it will teach you how to access C functions with a simple Python call. By the end of the book, you will be able to write more advanced scripts and take on bigger challenges.

Who is this book for?

Almost anyone can learn to write working script and create high quality code but they might lack a structured understanding of what it means to be 'Pythonic'. If you are a Python programmer who wants to code efficiently by getting the syntax and usage of a few intricate Python techniques exactly right, this book is for you.

What you will learn

  • • Create a virtualenv and start a new project
  • • Understand how and when to use the functional programming paradigm
  • • Get familiar with the different ways the decorators can be written in
  • • Understand the power of generators and coroutines without digressing into lambda calculus
  • • Create metaclasses and how it makes working with Python far easier
  • • Generate HTML documentation out of documents and code using Sphinx
  • • Learn how to track and optimize application performance, both memory and cpu
  • • Use the multiprocessing library, not just locally but also across multiple machines
  • • Get a basic understanding of packaging and creating your own libraries/applications

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Apr 29, 2016
Length: 486 pages
Edition : 1st
Language : English
ISBN-13 : 9781785289132
Category :
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Apr 29, 2016
Length: 486 pages
Edition : 1st
Language : English
ISBN-13 : 9781785289132
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 136.97
Mastering Python
$43.99
Python Unlocked
$43.99
Expert Python Programming
$48.99
Total $ 136.97 Stars icon
Banner background image

Table of Contents

16 Chapters
1. Getting Started – One Environment per Project Chevron down icon Chevron up icon
2. Pythonic Syntax, Common Pitfalls, and Style Guide Chevron down icon Chevron up icon
3. Containers and Collections – Storing Data the Right Way Chevron down icon Chevron up icon
4. Functional Programming – Readability Versus Brevity Chevron down icon Chevron up icon
5. Decorators – Enabling Code Reuse by Decorating Chevron down icon Chevron up icon
6. Generators and Coroutines – Infinity, One Step at a Time Chevron down icon Chevron up icon
7. Async IO – Multithreading without Threads Chevron down icon Chevron up icon
8. Metaclasses – Making Classes (Not Instances) Smarter Chevron down icon Chevron up icon
9. Documentation – How to Use Sphinx and reStructuredText Chevron down icon Chevron up icon
10. Testing and Logging – Preparing for Bugs Chevron down icon Chevron up icon
11. Debugging – Solving the Bugs Chevron down icon Chevron up icon
12. Performance – Tracking and Reducing Your Memory and CPU Usage Chevron down icon Chevron up icon
13. Multiprocessing – When a Single CPU Core Is Not Enough Chevron down icon Chevron up icon
14. Extensions in C/C++, System Calls, and C/C++ Libraries Chevron down icon Chevron up icon
15. Packaging – Creating Your Own Libraries or Applications Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(11 Ratings)
5 star 54.5%
4 star 18.2%
3 star 0%
2 star 27.3%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Randall Degges Jun 20, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
So, I was one of the technical editors of this book. I'm a bit biased, but I still think my review is useful to any potential readers!This is an incredibly useful and interesting book on advanced Python programming. Rick covers a lot of advanced Python topics in depth, with many examples, and does a good job of clearly explaining concepts along the way.This book covers:- Writing good project documenting using Sphinx and reStructuredText.- AsyncIO in Python 3.- Testing and logging.- Advanced debugging with pdb and trace.- Performance optimization and profiling.- Multiprocessing to solve CPU-bound issues and get around the GIL.- Metaclassing.- Writing Python extensions in C / C++, and using system libraries (especially useful for people doing performance based Python).- Packaging your Python code into clean, re-usable libraries.- And lots more!If any of the above topics are of interest to you, I highly recommend giving this book a read as it covers each of these topics in a lot of depth, and has some really useful information about each! Through the process of editing this book, I actually learned several really cool things I did not know previously, particularly around new Python 3 async stuff!If you're already a Python programmer, and want to upgrade your skill set to the next level, this is an excellent book to take you there.
Amazon Verified review Amazon
Boaz Jun 16, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Mastering Python is a good stepping stone for experienced Python developers who want to learn about the advanced features that Python has to offer.What I particularly like about this book is that it explains these subjects in a concise manner, while still discussing details, best practices, common pitfalls and the differences in Python versions.In addition, the author uses small code samples to explain the various topics that the book covers.That makes this book easy to read and allows it to be used as an advanced Python reference.
Amazon Verified review Amazon
Rafal D. Dec 07, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
First three chapters touch on basics of Python and how to get everything all setup on your computer. Then it quickly goes on towards more intermediate and advance topics like decorators, generators, async, metaclasses, etc. Python has this whole Zen thing going for it, and this book emphasizes on correct coding practices and avoiding common pitfalls. Great reference for anyone working with Python.
Amazon Verified review Amazon
Chandran Anjur Narasimhan Feb 21, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is one of the best python books that gives your an complete coverage of the programming language, tools needed and very detailed. I love this book.
Amazon Verified review Amazon
Praveen Aug 31, 2016
Full star icon Full star icon Full star icon Full star icon Full star icon 5
excellent book for mastering python
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.