Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Modular Programming with Python
Modular Programming with Python

Modular Programming with Python: Introducing modular techniques for building sophisticated programs using Python

eBook
€17.99 €26.99
Paperback
€32.99
Subscription
Free Trial
Renews at €18.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

Modular Programming with Python

Chapter 2. Writing Your First Modular Program

In this chapter, we will use modular programming techniques to implement a non-trivial program. Along the way, we will:

  • Learn about the divide and conquer approach to program design
  • Examine the tasks our program needs to perform
  • Look at the information our program will need to store
  • Apply modular techniques to break our program down into individual parts
  • Figure out how each part can be implemented as a separate Python module
  • See how the various modules work together to implement our program's functionality
  • Follow this process to implement a simple but complete inventory control system
  • See how modular techniques allow you to add functionality to your program while minimizing the changes that need to be made

The inventory control system

Imagine that you have been asked to write a program that allows the user to keep track of the company's inventory—that is, the various items the company has available for sale. For each inventory item, you have been asked to keep track of the product code and the item's current location. New items will be added as they are received, and existing items will be removed once they have been sold. Your program will also need to generate two types of reports: a report listing the company's current inventory, including how many of each type of item there are in each location, and a report that is used to re-order inventory items once they have been sold.

Looking at these requirements, it is clear that there are three different types of information that we will need to store:

  1. A list of the different types of products that the company has for sale. For each product type, we will need to know the product code (sometimes called an SKU number), a description...

Designing the inventory control system

If you step back and review our inventory control program's functionality, you can see that there are three fundamental types of activity that this program needs to support:

  • Storing information
  • Interacting with the user
  • Generating reports

While this is very general, this breakdown is helpful because it suggests a possible way of organizing our program code. For example, the part of the system responsible for storing information could store the lists of products, locations, and inventory items and make this information available as required. Similarly, the part of the system responsible for interacting with the user could prompt the user to choose an action to perform, ask them to select a product code, and so on. Finally, the area of the system responsible for generating reports would be able to generate each of the desired types of report.

Thinking about the system in this way, it becomes clear that each of these three parts of the system could be...

Implementing the inventory control system

Now that we have a good idea of the overall structure for our system, what our various modules will be, and what functionality they will provide, it's time for us to start implementing the system. Let's start with the data storage module.

Implementing the data storage module

Create a directory somewhere convenient where you can store the source code for the inventory control system. You might want to call this directory inventoryControl or something similar.

Inside this directory, we will place our various modules and files. Start by creating a new, empty Python source file named datastorage.py. This Python source file will hold our data storage module.

Note

When selecting the name for our modules, we are following the Python convention of using all lowercase letters. You might find this a bit awkward at first, but it soon becomes easy to read. Please refer to https://www.python.org/dev/peps/pep-0008/#package-and-module-names for more information...

Summary

In this chapter, we designed and implemented a non-trivial program to keep track of a company's inventory. Using the divide-and-conquer approach, we split the program into individual modules and then looked at the functionality that each module would need to provide. This led us to a more detailed design of the functions within each module, and we were then able to implement the overall system one step at a time. We discovered that some functionality had been overlooked and had to be added after the design was complete, and saw how modular programming makes it less likely for these types of changes to break your system. Finally, we had a quick play with the inventory control system to make sure it works.

In the next chapter, we will learn more about the nuts and bolts of how modules and packages work within Python.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • The book would help you develop succinct, expressive programs using modular deign
  • The book would explain best practices and common idioms through carefully explained and structured examples
  • It will have broad appeal as far as target audience is concerned and there would be take away for all beginners to Python

Description

Python has evolved over the years and has become the primary choice of developers in various fields. The purpose of this book is to help readers develop readable, reliable, and maintainable programs in Python. Starting with an introduction to the concept of modules and packages, this book shows how you can use these building blocks to organize a complex program into logical parts and make sure those parts are working correctly together. Using clearly written, real-world examples, this book demonstrates how you can use modular techniques to build better programs. A number of common modular programming patterns are covered, including divide-and-conquer, abstraction, encapsulation, wrappers and extensibility. You will also learn how to test your modules and packages, how to prepare your code for sharing with other people, and how to publish your modules and packages on GitHub and the Python Package Index so that other people can use them. Finally, you will learn how to use modular design techniques to be a more effective programmer.

Who is this book for?

This book is intended for beginner to intermediate level Python programmers who wish to learn how to use modules and packages within their programs. While readers must understand the basics of Python programming, no knowledge of modular programming techniques is required.

What you will learn

  • Learn how to use modules and packages to organize your Python code
  • Understand how to use the import statement to load modules and packages into your program
  • Use common module patterns such as abstraction and encapsulation to write better programs
  • Discover how to create self-testing Python packages
  • Create reusable modules that other programmers can use
  • Learn how to use GitHub and the Python Package Index to share your code with other people
  • Make use of modules and packages that others have written
  • Use modular techniques to build robust systems that can handle complexity and changing requirements over time

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 26, 2016
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781785887673
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 : May 26, 2016
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781785887673
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.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
€189.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
€264.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 111.97
Expert Python Programming
€36.99
Modular Programming with Python
€32.99
Software Architecture with Python
€41.99
Total 111.97 Stars icon
Banner background image

Table of Contents

10 Chapters
1. Introducing Modular Programming Chevron down icon Chevron up icon
2. Writing Your First Modular Program Chevron down icon Chevron up icon
3. Using Modules and Packages Chevron down icon Chevron up icon
4. Using Modules for Real-World Programming Chevron down icon Chevron up icon
5. Working with Module Patterns Chevron down icon Chevron up icon
6. Creating Reusable Modules Chevron down icon Chevron up icon
7. Advanced Module Techniques Chevron down icon Chevron up icon
8. Testing and Deploying Modules Chevron down icon Chevron up icon
9. Modular Programming as a Foundation for Good Programming Technique Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(3 Ratings)
5 star 33.3%
4 star 33.3%
3 star 33.3%
2 star 0%
1 star 0%
skeptic Nov 06, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Great book on a very important topic.Python is complex language with even more complex environment and its module system is the critical part of it. For example Python standard library is structured as a collection of modules. The author gives you an excellent overview of Python module system, gives important recommendation about creation of your own modules (and provide several examples, including generator example in chapter 4, as well as warns about gotchas. Interplay between modules and namespaces covered in Chapter 7 is alone worth several times of the price of the book. for example few understand that the import statement adds the imported module or package to the current namespace, which may or may not be the global namespace. the author also covers the problem of "name masking" in this chapter.Ability to write a large script using your own modules is a very important skill that few books teach. usually intro books on Python try to throw everything that language contains into the sink, creating problems for whose who study the language, even in cases when they already knew some other programming languages such as C++ or Perl. Ability not to cover some features of the language usually are complete absent in authors of such books.Most of the authors of Python books talks a lot about how great Python is, but never explain why. this books explains probably the most important feature of this scripting language which makes is great (actually inhered from Modula 3). Also most intro books suffer from excessive fascination with OO (thanks God this fad is past its peak). This book does not.Publishing of books that are devoted to important topics has great value as:you have nowhere to go to get information that it provides. But it is very risky business. Of cause if you are diligent you can collect this information by reading a dozen of book by extracting and organizing into some presentation relevant parts. But this is the work better reserved for personalities which corresponds to famous Sherlock Holms and it presuppose that you have pretty of time to do it. Usually meeting both of those two conditions is pretty unrealistic.So it takes a certain about of courage to write a book devoted to a single specific feature of Python and the author should be commended for that.That's why I highly recommend this book for anybody who is trying to learn the language. It really allow you to understand a single the most critical feature of the Python language.The book contain 9 chapters. Here are the titles of those chapters:1. Introducing Modular Programming2. Writing Your First Modular Program3. Using Modules and Packages4. Using Modules for Real-World Programming5. Working with Module Patterns6. Creating Reusable Modules7. Advanced Module Techniques8. Testing and Deploying Modules9. Modular Programming as a Foundation for Good Programming TechniqueNOTE: In chapter 8 the author covers unrelated but an important topic about how to prepare your modules to publication and upload them to GitHub. Using GitHub became now very popular among Python programmers and the earlier you learn about this possibility the better.Chapter 8 also covers important topic about installation of Python packages. But unfortunately the coverage is way to brief and does not cover gotchas that you might experience installing such packages as Numpy.I would like to stress it again: currently the book has no competition in the level of coverage of this, probably the most important feature of Python language.
Amazon Verified review Amazon
Mike Driscoll Jun 17, 2016
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Earlier this year or late 2015, Packt Publishing asked me to be technical reviewer for a book called “Modular Programming with Python” by Erik Westra. It sounded really interesting and it ended up being one of the best books I’ve read from Packt. Note that I am the sole technical reviewer of the book.Modular Programming with Python is actually quite fun to read. It is designed to help you learn how to make your code more modular and gives some really good examples. The first chapter begins by going over the way Python itself organizes its modules and packages. It goes on to explain why modular programming can be important and it has a neat example of creating your very own module, which happens to be a caching module.The second chapter is all about creating your first modular program. It takes you through the steps you might go through to design a program in a modular fashion and then actually implements it. During the design phase, the author just stubs out the interface. Then in the implementation phase we get to actually add the code.For chapter three, we learn how modules and packages are initialized. The author also goes over Python’s importing system. We learn how imports work, what relative imports are, controlling what gets imported, circular imports and more.Chapter four is about creating a modular charting package. We learn how to chart using the pillow package, which is a fork of the Python Imaging Library (PIL). Then the author talks about how requirements for a projects change and how we must respond to them. In this example, we need a way to do vector images which pillow doesn’t support. So the author shows how to add the ability to create charts using Reportlab or pillow. This is also a really great chapter.Chapter five looks at modular patterns, like encapsulation, wrappers, etc. I think the part I found most interesting was the portion of the chapter that covered dynamic imports, plugins and hooks.In Chapter six, we learn about reusable modules. The author first describes what a reusable module is and then gives some examples. The rest of the chapter is devoted to creating a reusable module which happens to be a unit conversion module.Chapter seven digs even more into Python’s importing system. It covers such items as optional imports, local imports, adding packages to sys.path, various import “gotchas”, dealing with globals and more. This was actually one of my favorite chapters.For chapter eight, we get a change of pace. It’s all about testing our modules and deploying them. The chapter only gives the basics on unit tests, code coverage and test driven development. The bulk of the chapter is about getting a module ready for publication to Github or the Python Package Index.The final chapter is supposed to demonstrate how modular programming techniques can make the process of programming itself more effective. It gives a pretty short example and wraps up the book.Overall I found this book conveyed its message very well. The code examples are straight-forward and easy to understand. The writing is very good. Much better than what I normally see in Packt publications. I love reading neat or just interesting code and this book has several great examples. I did feel like the book ended a bit abruptly. While I don’t know what should have been added, I just felt like it could have had another chapter or two. Regardless, I do recommend this book to anyone who is having trouble organizing their code.
Amazon Verified review Amazon
CynA Dec 26, 2016
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
This is a great book for understanding how to organize your python applications.The only thing I didn't like was. The author was hell bent on not using classes at all.Like there was an example where using class would have made the examples easier but the author used all functions with globals and locals. It was weird.While I understand that the author probably did that so it would be easier for beginners?But then again when your buying a book about how to program organize your code modularly.Chances are you already know what a class is.I just seriously don't understand the forced avoidance with classes in the examples.Other than that the book is great
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.