DiscoverThe Real Python PodcastExploring Duck Typing in Python & Dynamics of Monkey Patching
Exploring Duck Typing in Python & Dynamics of Monkey Patching

Exploring Duck Typing in Python & Dynamics of Monkey Patching

Update: 2024-03-15
Share

Description

What are the advantages of determining the type of an object by how it behaves? What coding circumstances are not a good fit for duck typing? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.


Christopher covers a recent Real Python tutorial by Leodanis Pozo Ramos titled Duck Typing in Python: Writing Flexible and Decoupled Code. The tutorial explains the concepts of duck typing within object-oriented programming and its use within Python’s built-in tools.


We discuss a recent article on monkey patching in Python. This practice of dynamically modifying a class or module’s behavior at runtime allows for testing, debugging, and experimentation.


We also share several other articles and projects from the Python community, including a news roundup, why names are not the same as objects in Python, using IPython Jupyter magic commands, a discussion about becoming a senior developer, a data exploration challenge, a Python evaluation game, and a terminal UI for regex testing.


This week’s episode is brought to you by Sentry.



Course Spotlight: Pointers and Objects in Python


In this video course, you’ll learn about Python’s object model and see why pointers don’t really exist in Python. You’ll also cover ways to simulate pointers in Python without managing memory.



Topics:



  • 00:00:00 – Introduction

  • 00:02:38 – Listener feedback

  • 00:04:02 – DjangoCon US Call for Proposals

  • 00:04:38 – White House Recommends Use of Python

  • 00:05:41 – JupyterLab 4.1 and Notebook 7.1 Released

  • 00:06:05 – What’s in a Name?

  • 00:11:52 – Duck Typing in Python: Writing Flexible and Decoupled Code

  • 00:15:07 – Sponsor: Sentry

  • 00:16:11 – Using IPython Jupyter Magic Commands

  • 00:22:31 – A Guide to Monkey Patching

  • 00:25:27 – Falsehoods Junior Developers Believe About Becoming Senior

  • 00:33:01 – Video Course Spotlight

  • 00:34:11 – Falsehoods continued

  • 00:43:43 – Where in the data?

  • 00:46:55 – the eval game

  • 00:48:03 – rexi: Terminal UI for Regex Testing

  • 00:49:43 – Thanks and goodbye


News:



Show Links:



  • What’s in a Name? – An article about names in Python, and why they’re not the same as objects. The article discusses reference counts and namespaces.

  • Duck Typing in Python: Writing Flexible and Decoupled Code – In this tutorial, you’ll learn about duck typing in Python. It’s a typing system based on objects’ behaviors rather than on inheritance. By taking advantage of duck typing, you can create flexible and decoupled sets of Python classes that you can use together or individually.

  • Using IPython Jupyter Magic Commands – “IPython Jupyter Magic commands (e.g. lines in notebook cells starting with % or %%) can decorate a notebook cell, or line, to modify its behavior.” This article shows you how to define them and where they can be useful.

  • Monkeying Around With Python: A Guide to Monkey Patching – Monkey patching is the practice of modifying live code. This article shows you how it’s done and why and when to use the practice.


Discussion:



Projects:



Additional Links:



Level up your Python skills with our expert-led courses:


Support the podcast & join our community of Pythonistas

Comments 
loading
00:00
00:00
1.0x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Exploring Duck Typing in Python & Dynamics of Monkey Patching

Exploring Duck Typing in Python & Dynamics of Monkey Patching