Book Image

Python 3 Object-Oriented Programming - Second Edition

By : Dusty Phillips
Book Image

Python 3 Object-Oriented Programming - Second Edition

By: Dusty Phillips

Overview of this book

Python 3 is more versatile and easier to use than ever. It runs on all major platforms in a huge array of use cases. Coding in Python minimizes development time and increases productivity in comparison to other languages. Clean, maintainable code is easy to both read and write using Python's clear, concise syntax. Object-oriented programming is a popular design paradigm in which data and behaviors are encapsulated in such a way that they can be manipulated together. Many modern programming languages utilize the powerful concepts behind object-oriented programming and Python is no exception. Starting with a detailed analysis of object-oriented analysis and design, you will use the Python programming language to clearly grasp key concepts from the object-oriented paradigm. This book fully explains classes, data encapsulation, inheritance, polymorphism, abstraction, and exceptions with an emphasis on when you can use each principle to develop well-designed software. You'll get an in-depth analysis of many common object-oriented design patterns that are more suitable to Python's unique style. This book will not just teach Python syntax, but will also build your confidence in how to program. You will also learn how to create maintainable applications by studying higher level design patterns. Following this, you'll learn the complexities of string and file manipulation, and how Python distinguishes between binary and textual data. Not one, but two very powerful automated testing systems will be introduced in the book. After you discover the joy of unit testing and just how easy it can be, you'll study higher level libraries such as database connectors and GUI toolkits and learn how they uniquely apply object-oriented principles. You'll learn how these principles will allow you to make greater use of key members of the Python eco-system such as Django and Kivy. This new edition includes all the topics that made Python 3 Object-oriented Programming an instant Packt classic. It's also packed with updated content to reflect recent changes in the core Python library and covers modern third-party packages that were not available on the Python 3 platform when the book was first published.  
Table of Contents (21 chapters)
Python 3 Object-oriented Programming Second Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Introduction to the second edition
Preface
Index

About the Reviewers

AMahdy AbdElAziz has more than 8 years of experience in software engineering using several languages and frameworks. Over the last 5 years, he has focused on Android and mobile development, including cross-platform tools, and Android internals, such as building custom ROMs and customizing AOSP for embedded devices.

He is currently teaching Python at Information Technology Institution. You can visit his website, http://www.amahdy.net/, to find out more about him.

Grigoriy Beziuk is a former CIO of Crowdage Foundation, acting as an independent software developer as this book was being written. He has worked with a wide variety of programming languages and technologies, including different versions of Python in different environments, ranging from purely scientific ones to modern production-scale web development issues.

Krishna Bharadwaj is the cofounder of SMERGERS (https://www.smergers.com/), a Fintech start-up helping small and medium businesses raise capital from investors and different financial institutions. In the past, he has worked with early stage start-ups such as BlockBeacon (Santa Monica) and PricePoint (CA) and large organizations such as National Instruments, Bangalore, and Google, New York. Krishna got introduced to Python and FOSS during his college days and has continued to use it extensively in his personal projects and also professionally at work. Because of his liking for teaching and mentoring, he visits different universities, conducting workshops whenever he gets an opportunity.

He holds a master's degree in computer science from the University of Southern California, Los Angeles, and a bachelor's degree in information science and engineering from the BMS College of Engineering, Bangalore. He can be reached through his e-mail, , or his website, http://www.krishnabharadwaj.info/.

Justin Cano is a recent graduate from the University of California, Riverside, with a BS in computer engineering and is currently working as a software engineer in the Silicon Valley area with hopes of moving to a big tech company such as Google or Apple.

He first started programming in the sixth grade, creating small, primitive websites in HTML and CSS. He started to learn computer science theory and C++ in his first year at UC Riverside and then started learning Python in his third year.

Justin admits that at first, he wasn't immediately attracted to Python, since abstractions between C++ and Python are very different. It wasn't until he began to express more of an interest in coding contests and challenges that he began to show interest in Python, mainly because he feels that the readability and elegance of the Python syntax allows him to quickly and more naturally turn ideas and thought processes into Python code. He now writes Python code regularly, often to create mock-ups or prototypes of software applications before moving on to a more domain-specific language.

Anthony Petitbois is an online architect in the video game industry with 13 years of professional experience in operations and development and more than 20 years of software development experience. He is passionate about new technologies and loves to take creative approaches to solve complex problems.

In his spare time, he learns new languages and new platforms, plays video games, and spends time with his family in the beautiful region of British Columbia, Canada, where he now lives after emigrating from France in 2009.

Claudio Rodriguez started working on PLCs for GE, but his main goal has always been research and development and turning dreams into reality. This made him move from automation engineering to software engineering and the structured way of software, OOD; the remote team working from the comfort of his computer was just too powerful not to take advantage of. During his master's, he got to learn the proper place to look for resources and found a friend in books and research papers and conferences. Eventually, he started working on a system to control an electric arc furnace, but the needs of his clients moved him into taking further control of technology. He has a deep love for complex AI and can be seen surrounded by papers, books, and a computer to test things, but he keeps things real by delivering beautiful and dynamic applications for his customers.