Buy Python Programming with Design Patterns - Bookswagon
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > Python Programming with Design Patterns
Python Programming with Design Patterns

Python Programming with Design Patterns


     0     
5
4
3
2
1



Out of Stock


Notify me when this book is in stock
X
About the Book

Improve Your Python Code with Modern Object-Oriented Design Patterns To write clean, efficient, maintainable code, developers everywhere turn to design patterns. Now there's a Python-specific patterns guide that's friendly and practical enough for every Python developer, regardless of experience. Best-selling patterns author James W. Cooper presents visual, example-driven explanations of 23 proven patterns for writing superior object-oriented code. Through clear and intuitive code samples, he introduces modern techniques for creating Python objects that interact effectively in powerful, flexible programs. Python newcomers--including those moving from other languages--will find a succinct introduction designed to get them up to speed fast. Cooper's wide-ranging patterns coverage addresses abstract classes, multiple inheritance, GUI programming and widgets, graphical classes, drawing and plotting, math, databases, Python decorators, images, threads, iterators, creating executable code, and more. Throughout, his informal visual presentation makes patterns far easier to work with--so you can confidently build sophisticated programs that use Python's rich capabilities. Review the essentials of Python objects and visual programming Learn what design patterns are, and how they help you write better code Use creational patterns to enhance flexibility and avoid unnecessary complexity Apply structural patterns to ensure that program elements work together well in large programs Optimize communication between objects with behavioral patterns

Table of Contents:
Preface     xxi PART I:  INTRODUCTION     1 The tkinter Library     2 GitHub     2 Chapter 1  Introduction to Objects     5 The Class __init__ Method     6 Variables Inside a Class     6 Collections of Classes     7 Inheritance     8 Derived Classes Created with Revised Methods     8 Multiple Inheritance     8 Drawing a Rectangle and a Square     10 Visibility of Variables     12     Properties     13     Local Variables     13 Types in Python     13 Summary     14 Programs on GitHub     15 Chapter 2  Visual Programming in Python     17 Importing Fewer Names     19 Creating an Object-Oriented Version     19 Using Message Boxes     21 Using File Dialogs     22 Understanding Options for the Pack Layout Manager     23 Using the ttk Libraries     24 Responding to User Input     25     Adding Two Numbers     26     Catching the Error     26 Applying Colors in tkinter     27 Creating Radio Buttons     27     Using a Class-Level Variable     30 Communicating Between Classes     30 Using the Grid Layout     30 Creating Checkbuttons     32     Disabling Check Boxes     32 Adding Menus to Windows     35 Using the LabelFrame     39 Moving On     40 Examples on GitHub     40 Chapter 3  Visual Programming of Tables of Data     41 Creating a Listbox     42     Displaying the State Data     44 Using a Combobox     46 The Treeview Widget     47     Inserting Tree Nodes     50 Moving On     51 Example Code on GitHub     51 Chapter 4  What Are Design Patterns?     53 Defining Design Patterns     54 The Learning Process     55 Notes on Object-Oriented Approaches     56 Python Design Patterns     57 References     57 PART II:  CREATIONAL PATTERNS     59 Chapter 5  The Factory Pattern     61 How a Factory Works     61 Sample Code     62 The Two Subclasses     62 Building the Simple Factory     63     Using the Factory     63     A Simple GUI     64 Factory Patterns in Math Computation     65 Programs on GitHub     65 Thought Questions     66 Chapter 6  The Factory Method Pattern     67 The Swimmer Class     68 The Event Classes     69 Straight Seeding     70     Circle Seeding     71 Our Seeding Program     72 Other Factories     74 When to Use a Factory Method     74 Programs on GitHub     74 Chapter 7  The Abstract Factory Pattern     75 A GardenMaker Factory     75 How the User Interface Works     77 Consequences of the Abstract Factory Pattern     77 Thought Questions     78 Code on GitHub     78 Chapter 8  The Singleton Pattern     79 Throwing the Exception     80 Creating an Instance of the Class     80 Static Classes As Singleton Patterns     81 Finding the Singletons in a Large Program     81 Other Consequences of the Singleton Pattern     82 Sample Code on GitHub     82 Chapter 9  The Builder Pattern     83 An Investment Tracker     84 Calling the Builders     86     The List Box Builder     87     The Checkbox Builder     88 Displaying the Selected Securities     89 Consequences of the Builder Pattern     89 Thought Questions     89 Sample Code on GitHub     89 Chapter 10  The Prototype Pattern     91 Cloning in Python     91 Using the Prototype     92 Consequences of the Prototype Pattern     94 Sample Code on GitHub     94 Chapter 11  Summary of Creational Patterns     95 PART III:  STRUCTURAL PATTERNS     97 Chapter 12  The Adapter Pattern     99 Moving Data Between Lists     99 Making an Adapter     101     The Class Adapter     103     Two-Way Adapters     103     Pluggable Adapters     103 Programs on GitHub     103 Chapter 13  The Bridge Pattern     105 Creating the User Interface     107 Extending the Bridge     108 Consequences of the Bridge Pattern     109 Programs on GitHub     110 Chapter 14  The Composite Pattern     111 An Implementation of a Composite     112 Salary Computation     112 The Employee Classes     112 The Boss Class     113 Building the Employee Tree     114 Printing the Employee Tree     114 Creating a Treeview of the Composite     116 Using Doubly Linked Lists     117 Consequences of the Composite Pattern     118 A Simple Composite     119 Other Implementation Issues     119     Dealing with Recursive Calls     119     Ordering Components     120     Caching Results     120 Programs on GitHub     120 Chapter 15  The Decorator Pattern     121 Decorating a Button     121 Using a Decorator     122 Using Nonvisual Decorators     123     Decorated Code     124 The dataclass Decorator     125 Using dataclass with Default Values     126 Decorators, Adapters, and Composites     126 Consequences of the Decorator Pattern     126 Programs on GitHub     127 Chapter 16  The Facade Pattern     129 Building the Façade Classes     131 Creating Databases and Tables     135 Using the SQLite Version     136 Consequences of the Façade     137 Programs on GitHub     137 Notes on MySQL     137 Using SQLite     138 References     138 Chapter 17  The Flyweight Pattern     139 What Are Flyweights?     139 Example Code     140 Selecting a Folder     142 Copy-on-Write Objects     143 Program on GitHub     143 Chapter 18  The Proxy Pattern     145 Using the Pillow Image Library     145 Displaying an Image Using PIL     146 Using Threads to Handle Image Loading     146 Logging from Threads     149 Copy-on-Write     149 Comparing Related Patterns     149 Programs on GitHub     150 Chapter 19  Summary of Structural Patterns     151 PART IV:  BEHAVIORAL PATTERNS     153 Chapter 20  Chain of Responsibility Pattern     155 When to Use the Chain     156 Sample Code     156 The Listboxes     159 Programming a Help System     160 Receiving the Help Command     161 The First Case     162 A Chain or a Tree?     163 Kinds of Requests     164 Consequences of the Chain of Responsibility     164 Programs on GitHub     165 Chapter 21  The Command Pattern     167 When to Use the Command Pattern     167 Command Objects     168 A Keyboard Example     168 Calling the Command Objects     170 Building Command Objects     171 The Command Pattern     172 Consequences of the Command Pattern     172 Providing the Undo Function     172     Creating the Red and Blue Buttons     175     Undoing the Lines     175 Summary     176 References     176 Programs on GitHub     176 Chapter 22  The Interpreter Pattern     177 When to Use an Interpreter     177 Where the Pattern Can Be Helpful     177 A Simple Report Example     178 Interpreting the Language     179 How Parsing Works     180     Sorting Using attrgetter()     181     The Print Verb     182 The Console Interface     182 The User Interface     183 Consequences of the Interpreter Pattern     184 Programs on GitHub     185 Chapter 23  The Iterator Pattern     187 Why We Use Iterators     187 Iterators in Python     187 A Fibonacci Iterator     188     Getting the Iterator     189 Filtered Iterators     189 The Iterator Generator     191 A Fibonacci Iterator     191 Generators in Classes     192 Consequences of the Iterator Pattern     192 Programs on GitHub     193 Chapter 24  The Mediator Pattern     195 An Example System     195 Interactions Between Controls     197 Sample Code     198 Mediators and Command Objects     199 Consequences of the Mediator Pattern     200 Single Interface Mediators     200 Programs on GitHub     201 Chapter 25  The Memento Pattern     203 When to Use a Memento     203 Sample Code     204 Consequences of the Memento Pattern     209 Programs on GitHub     209 Chapter 26  The Observer Pattern     211 Example Program for Watching Colors Change     212 The Message to the Media     215 Consequences of the Observer Pattern     215 Programs on GitHub     215 Chapter 27  The State Pattern     217 Sample Code     217 Switching Between States     221 How the Mediator Interacts with the State State Transitions     224 Programs on GitHub     224 Chapter 28  The Strategy Pattern     225 Why We Use the Strategy Pattern     225 Sample Code     226 The Context     227 The Program Commands     227 The Line and Bar Graph Strategies     228 Consequences of the Strategy Pattern     230 Programs on GitHub     231 Chapter 29  The Template Pattern     233 Why We Use Template Patterns     233 Kinds of Methods in a Template Class     234 Sample Code     234     Drawing a Standard Triangle     235     Drawing an Isosceles Triangle     236 The Triangle Drawing Program     237 Templates and Callbacks     238 Summary and Consequences     238 Example Code on GitHub     238 Chapter 30  The Visitor Pattern     239 When to Use the Visitor Pattern     239 Working with the Visitor Pattern     241 Sample Code     241 Visiting Each Class     242 Visiting Several Classes     242 Bosses Are Employees, Too     243 Double Dispatching     245 Traversing a Series of Classes     245 Consequences of the Visitor Pattern     245 Example Code on GitHub     245 PART V:  A BRIEF INTRODUCTION TO PYTHON     247 Chapter 31  Variables and Syntax in Python     249 Data Types     250 Numeric Constants     250 Strings     250 Character Constants     251 Variables     252 Complex Numbers     253 Integer Division     253 Multiple Equal Signs for Initialization     254 A Simple Python Program     254 Compiling and Running This Program     255 Arithmetic Operators     255     Bitwise Operators     255 Combined Arithmetic and Assignment Statements     256 Comparison Operators     256 The input Statement     257 PEP 8 Standards     258     Variable and Function Names     258     Constants     258     Class Names     258     Indentation and Spacing     259     Comments     259     Docstrings     259 String Methods     260 Examples on GitHub     261 Chapter 32  Making Decisions in Python     263 elif is “else if”     263 Combining Conditions     264 The Most Common Mistake     264 Looping Statements in Python     265     The for Loop and Lists     265     Using range in if Statements     266 Using break and continue     266     The continue Statement     267 Python Line Length     267 The print Function     267 Formatting Numbers     268     C and Java Style Formatting     269     The format string Function     269     f-string Formatting     269     Comma-Separated Numbers     270     Strings     270 Formatting Dates     271 Using the Python match Function     271     Pattern Matching     272 Reference     273 Moving On     273 Sample Code on GitHub     273 Chapter 33  Development Environments     275 IDLE     275 Thonny     275 PyCharm     276 Visual Studio     276 Other Development Environments     276     LiClipse     276     Jupyter Notebook     277     Google Colaboratory     277     Anaconda     277     Wing     278 Command-Line Execution     278 CPython, IPython, and Jython     278 Chapter 34  Python Collections and Files     279 Slicing     279 Slicing Strings     280     Negative Indexes     281     String Prefix and Suffix Removal     281 Changing List Contents     281 Copying a List     282 Reading Files     282     Using the with Loop     283 Handling Exceptions     284 Using Dictionaries     284     Combining Dictionaries     286 Using Tuples     286 Using Sets     287 Using the map Function     287 Writing a Complete Program     288     Impenetrable Coding     288 Using List Comprehension     289 Sample Programs on GitHub     290 Chapter 35  Functions     291 Returning a Tuple     292 Where Does the Program Start?     292 Summary     293 Programs on GitHub     293 Appendix A  Running Python Programs     295 If You Have Python Installed     295     Shortcuts     295 Creating an Executable Python Program     296 Command-Line Arguments     297 Index     299

About the Author :
James W. Cooper holds a PhD in chemistry and worked in academia, for the scientific instrument industry, and for IBM for 25 years, primarily as a computer scientist at IBM's Thomas J. Watson Research Center. Now retired, he is the author of 20 books, including 3 on design patterns in various languages. His most recent books are Flameout: The Rise and Fall of IBM Instruments (2019) and Food Myths Debunked (2014). James holds 11 patents and has written 60 columns for JavaPro Magazine. He has also written nearly 1,000 columns for the now vanished Examiner.com on foods and chemistry, and he currently writes his own blog: FoodScienceInstitute.com. Recently, he has written columns on Python for Medium.com and Substack. He is also involved in local theater groups and is the treasurer for Troupers Light Opera, where he performs regularly.


Best Sellers


Product Details
  • ISBN-13: 9780137579853
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Pearson
  • Language: English
  • ISBN-10: 0137579853
  • Publisher Date: 26 Feb 2022
  • Binding: Digital download
  • No of Pages: 352


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Python Programming with Design Patterns
Pearson Education (US) -
Python Programming with Design Patterns
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Python Programming with Design Patterns

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    Fresh on the Shelf


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!