Book Image

Learning Python Application Development

By : Ninad Sathaye
Book Image

Learning Python Application Development

By: Ninad Sathaye

Overview of this book

Python is one of the most widely used dynamic programming languages, supported by a rich set of libraries and frameworks that enable rapid development. But fast paced development often comes with its own baggage that could bring down the quality, performance, and extensibility of an application. This book will show you ways to handle such problems and write better Python applications. From the basics of simple command-line applications, develop your skills all the way to designing efficient and advanced Python apps. Guided by a light-hearted fantasy learning theme, overcome the real-world problems of complex Python development with practical solutions. Beginning with a focus on robustness, packaging, and releasing application code, you’ll move on to focus on improving application lifetime by making code extensible, reusable, and readable. Get to grips with Python refactoring, design patterns and best practices. Techniques to identify the bottlenecks and improve performance are covered in a series of chapters devoted to performance, before closing with a look at developing Python GUIs.
Table of Contents (18 chapters)
Learning Python Application Development
Credits
Disclaimers
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

The problem


In the game scenario, you allowed the users to tweak certain parameters. For example, the users can control the total number of coins on the field or modify the radius of the search circle. Unknowingly, you opened a new can of worms. For a large input size, the program runs very slow. For example, one variant of the game, The Great Dwarf of the Foo mountain, is performing the gold hunt. Let's hear what he has to say:

If you change field_coins from 5000 to 1000000 and set search_radius to 0.1, the application will take quite a bit of time to finish. Here is the updated main execution code with these new parameters:

if __name__ == '__main__': 
    game = GoldHunt(field_coins=1000000, search_radius=0.1) 
    game.play() 

If you increase the coins further or make the search radius even smaller, it will severely affect the application runtime.

Tip

Warning!

If you run the following code, depending on your machine configuration, it can slow down your machine, take longer time to finish...