DZone
Web Dev Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Web Dev Zone > Unconventional Uses of Python Objects

Unconventional Uses of Python Objects

Chris Smith user avatar by
Chris Smith
·
Mar. 20, 12 · Web Dev Zone · Interview
Like (0)
Save
Tweet
3.32K Views

Join the DZone community and get the full member experience.

Join For Free
One of the greatest features of Python is its flexibility.  It allows for its objects (classes and instances of classes) to be used in a myriad of ways, many of which are not conventionally object-oriented.  Chris Siebenmann has created a short list of ways that he uses Python's objects in this manner:

  • Creating inheritance hierarchies for exceptions so I can have hierarchies of general and specific exceptions. I'm pretty sure that I'm usually over-designing when I do this and that I rarely need an actual hierarchy as opposed to one or two separate exceptions.
  • As data records, ie the equivalent of C structs, in situations where just a list or a dictionary isn't enough. This 'bag of data' design pattern probably horrifies real OO people.
  • For polymorphism, when I have generic operations to apply to a variety of underlying object types. Usually I don't use much or any inheritance for this, because in Python you don't need to use inheritance to get polymorphism; you can just duck type. (This is a superset of objects as data records.)

  • For combining data and behavior together when it seems to make things simpler. My ideal is when all of the code that has to know about internal data storage details can be most conveniently put in one place (ie on the class), but I am willing to put methods on the side of a bag of data when it makes dealing with the data simpler. (Sometimes this involves polymorphism.)
-- Chris Siebenmann

Chris points out that this is not a complete list, but rather a list of the ones he uses most often.  Are there any other ways that you use Python objects that are unconventional?  Please share them in the comments section below.
Object (computer science) Python (language)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 5 Steps to Create a Successful Agile Release Plan
  • Event-Driven Order Processing Program
  • How Low Code Demands More Creativity From Developers
  • Unified Observability Exporters: Metrics, Logs, and Tracing

Comments

Web Dev Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo