Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
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 a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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...
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 : 9781785884481
Category :
Languages :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

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

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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.