René's URL Explorer Experiment


Title: Python Descriptors: An Introduction – Real Python

Open Graph Title: Python Descriptors: An Introduction – Real Python

Description: In this step-by-step tutorial, you'll learn what Python descriptors are and how they're used in Python's internals. You'll learn about the descriptor protocol and how the lookup chain works when you access an attribute. You'll also see a few practical examples where Python descriptors can come in handy.

Open Graph Description: In this step-by-step tutorial, you'll learn what Python descriptors are and how they're used in Python's internals. You'll learn about the descriptor protocol and how the lookup chain works when you access an attribute. You'll also see a few practical examples where Python descriptors can come in handy.

Mail addresses
?subject=Python article for you&body=Python Descriptors: An Introduction on Real Python https://realpython.com/python-descriptors/

Opengraph URL: https://realpython.com/python-descriptors/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
{
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "Python Descriptors: An Introduction",
  "image": {
    "@type": "ImageObject",
    "url": "https://files.realpython.com/media/Python-Descriptors_Watermarked.6e3274d987a2.jpg",
    "width": 1920,
    "height": 1080
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://realpython.com/python-descriptors/",
    "lastReviewed": "2022-11-11",
    "author": {
      "@type": "Person",
      "name": "Davide Mastromatteo",
      "image": "https://realpython.com/cdn-cgi/image/width=700,height=700,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/mastro.f2fa63891e00.jpg",
      "url": "https://realpython.com/team/dmastromatteo/",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://realpython.com/#organization",
        "name": "Real Python",
        "url": "https://realpython.com",
        "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
      }
    },
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "Aldren Santos",
        "image": "https://realpython.com/cdn-cgi/image/width=500,height=500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Aldren_Santos_Real_Python.6b0861d8b841.png",
        "url": "https://realpython.com/team/asantos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Geir Arne Hjelle",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/gahjelle.470149ee709e.jpg",
        "url": "https://realpython.com/team/gahjelle/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Jaya Zhan\u00e9",
        "image": "https://realpython.com/cdn-cgi/image/width=572,height=572,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/author-jpowell.ecce5da51b65.jpg",
        "url": "https://realpython.com/team/jayazhane/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Joanna Jablonski",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/jjablonksi-avatar.e37c4f83308e.jpg",
        "url": "https://realpython.com/team/jjablonski/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Mike Driscoll",
        "image": "https://realpython.com/cdn-cgi/image/width=900,height=900,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/mdriscoll.db44df0df864.jpg",
        "url": "https://realpython.com/team/mdriscoll/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      }
    ]
  },
  "datePublished": "2019-11-27T14:00:00+00:00",
  "dateModified": "2022-11-11T15:46:01.376196+00:00",
  "publisher": {
    "@type": "Organization",
    "@id": "https://realpython.com/#organization",
    "name": "Real Python",
    "url": "https://realpython.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png",
      "width": 512,
      "height": 512
    },
    "description": "Real Python is a leading provider of online Python education and one of the largest language-specific online communities for software developers. It publishes high-quality learning resources, such as tutorials, books, and courses to an audience of millions of developers, data scientists, and machine learning engineers each month.",
    "slogan": "Become a Python Expert",
    "email": "info@realpython.com",
    "sameAs": [
      "https://github.com/realpython",
      "https://www.youtube.com/realpython",
      "https://twitter.com/realpython",
      "https://x.com/realpython",
      "https://www.linkedin.com/company/realpython-com/",
      "https://www.facebook.com/learnrealpython",
      "https://www.instagram.com/realpython",
      "https://www.tiktok.com/@realpython.com"
    ]
  },
  "author": {
    "@type": "Person",
    "name": "Davide Mastromatteo",
    "image": "https://realpython.com/cdn-cgi/image/width=700,height=700,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/mastro.f2fa63891e00.jpg",
    "url": "https://realpython.com/team/dmastromatteo/",
    "affiliation": {
      "@type": "Organization",
      "@id": "https://realpython.com/#organization",
      "name": "Real Python",
      "url": "https://realpython.com",
      "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
    }
  },
  "description": "In this step-by-step tutorial, you'll learn what Python descriptors are and how they're used in Python's internals. You'll learn about the descriptor protocol and how the lookup chain works when you access an attribute. You'll also see a few practical examples where Python descriptors can come in handy."
}

authorReal Python
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/Python-Descriptors_Watermarked.6e3274d987a2.jpg
og:imagehttps://files.realpython.com/media/Python-Descriptors_Watermarked.6e3274d987a2.jpg
twitter:creator@realpython
og:typearticle

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/python-descriptors/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/quizzes/
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Code Mentor →BetaPersonalized code assistance & learning toolshttps://realpython.com/mentor/
Unlock All Content →https://realpython.com/account/join/
More https://realpython.com/python-descriptors/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Tutorial Writerhttps://realpython.com/write-for-us/
Become a Video Instructorhttps://realpython.com/become-an-instructor/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?next=%2Fpython-descriptors%2F
Browse Topicshttps://realpython.com/tutorials/all/
Guided Learning Pathshttps://realpython.com/learning-paths/
Basicshttps://realpython.com/search?level=basics
Intermediatehttps://realpython.com/search?level=intermediate
Advancedhttps://realpython.com/search?level=advanced
aihttps://realpython.com/tutorials/ai/
algorithmshttps://realpython.com/tutorials/algorithms/
apihttps://realpython.com/tutorials/api/
best-practiceshttps://realpython.com/tutorials/best-practices/
careerhttps://realpython.com/tutorials/career/
communityhttps://realpython.com/tutorials/community/
databaseshttps://realpython.com/tutorials/databases/
data-sciencehttps://realpython.com/tutorials/data-science/
data-structureshttps://realpython.com/tutorials/data-structures/
data-vizhttps://realpython.com/tutorials/data-viz/
devopshttps://realpython.com/tutorials/devops/
djangohttps://realpython.com/tutorials/django/
dockerhttps://realpython.com/tutorials/docker/
editorshttps://realpython.com/tutorials/editors/
flaskhttps://realpython.com/tutorials/flask/
front-endhttps://realpython.com/tutorials/front-end/
gamedevhttps://realpython.com/tutorials/gamedev/
guihttps://realpython.com/tutorials/gui/
machine-learninghttps://realpython.com/tutorials/machine-learning/
newshttps://realpython.com/tutorials/news/
numpyhttps://realpython.com/tutorials/numpy/
projectshttps://realpython.com/tutorials/projects/
pythonhttps://realpython.com/tutorials/python/
stdlibhttps://realpython.com/tutorials/stdlib/
testinghttps://realpython.com/tutorials/testing/
toolshttps://realpython.com/tutorials/tools/
web-devhttps://realpython.com/tutorials/web-dev/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Table of Contentshttps://realpython.com/python-descriptors/#toc
What Are Python Descriptors?https://realpython.com/python-descriptors/#what-are-python-descriptors
How Descriptors Work in Python’s Internalshttps://realpython.com/python-descriptors/#how-descriptors-work-in-pythons-internals
Python Descriptors in Propertieshttps://realpython.com/python-descriptors/#python-descriptors-in-properties
Python Descriptors in Methods and Functionshttps://realpython.com/python-descriptors/#python-descriptors-in-methods-and-functions
How Attributes Are Accessed With the Lookup Chainhttps://realpython.com/python-descriptors/#how-attributes-are-accessed-with-the-lookup-chain
How to Use Python Descriptors Properlyhttps://realpython.com/python-descriptors/#how-to-use-python-descriptors-properly
Why Use Python Descriptors?https://realpython.com/python-descriptors/#why-use-python-descriptors
Lazy Propertieshttps://realpython.com/python-descriptors/#lazy-properties
D.R.Y. Codehttps://realpython.com/python-descriptors/#dry-code
Conclusionhttps://realpython.com/python-descriptors/#conclusion
https://realpython.com/feedback/survey/article/python-descriptors/liked/?from=article-sidebar
https://realpython.com/feedback/survey/article/python-descriptors/disliked/?from=article-sidebar
Python Descriptors 43m · 13 lessons https://realpython.com/courses/python-descriptors/
Davide Mastromatteohttps://realpython.com/python-descriptors/#author
https://realpython.com/python-descriptors/#reader-comments
intermediatehttps://realpython.com/tutorials/intermediate/
pythonhttps://realpython.com/tutorials/python/
What Are Python Descriptors?https://realpython.com/python-descriptors/#what-are-python-descriptors
How Descriptors Work in Python’s Internalshttps://realpython.com/python-descriptors/#how-descriptors-work-in-pythons-internals
Python Descriptors in Propertieshttps://realpython.com/python-descriptors/#python-descriptors-in-properties
Python Descriptors in Methods and Functionshttps://realpython.com/python-descriptors/#python-descriptors-in-methods-and-functions
How Attributes Are Accessed With the Lookup Chainhttps://realpython.com/python-descriptors/#how-attributes-are-accessed-with-the-lookup-chain
How to Use Python Descriptors Properlyhttps://realpython.com/python-descriptors/#how-to-use-python-descriptors-properly
Why Use Python Descriptors?https://realpython.com/python-descriptors/#why-use-python-descriptors
Lazy Propertieshttps://realpython.com/python-descriptors/#lazy-properties
D.R.Y. Codehttps://realpython.com/python-descriptors/#dry-code
Conclusionhttps://realpython.com/python-descriptors/#conclusion
Remove adshttps://realpython.com/account/join/
Python Descriptorshttps://realpython.com/courses/python-descriptors/
Click here to get access to a free “The Power of Python Decorators” guidehttps://realpython.com/bonus/power-of-decorators-fixed/
https://realpython.com/python-descriptors/#what-are-python-descriptors
exceptionhttps://realpython.com/courses/introduction-python-exceptions/
recommended wayhttps://docs.python.org/3/howto/descriptor.html#descriptor-protocol
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-descriptors/#how-descriptors-work-in-pythons-internals
object-oriented Pythonhttps://realpython.com/python3-object-oriented-programming/
https://realpython.com/python-descriptors/#python-descriptors-in-properties
decoratorshttps://realpython.com/primer-on-python-decorators/
getter and setterhttps://realpython.com/python-getter-setter/
property()https://realpython.com/python-property/
https://realpython.com/python-descriptors/#python-descriptors-in-methods-and-functions
object-oriented programhttps://realpython.com/python3-object-oriented-programming/
official docshttps://docs.python.org/3/howto/descriptor.html#functions-and-methods
Python args and kwargs: Demystifiedhttps://realpython.com/python-kwargs-and-args/
Python’s Instance, Class, and Static Methods Demystifiedhttps://realpython.com/instance-class-and-static-methods-demystified/
official docshttps://docs.python.org/3/howto/descriptor.html#functions-and-methods
static methods and class methodshttps://realpython.com/instance-class-and-static-methods-demystified/
Chttps://realpython.com/build-python-c-extension-module/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-descriptors/#how-attributes-are-accessed-with-the-lookup-chain
.__dict__https://realpython.com/python-dict-attribute/
method resolution orderhttps://data-flair.training/blogs/python-multiple-inheritance/
https://realpython.com/python-descriptors/#how-to-use-python-descriptors-properly
variablehttps://realpython.com/python-variables/
garbage collectorhttps://realpython.com/python-memory-management/#garbage-collection
metaclasseshttps://realpython.com/python-metaclasses/
decoratorshttps://realpython.com/primer-on-python-decorators/
Python 3.6https://docs.python.org/3/whatsnew/3.6.html
PEP 487https://www.python.org/dev/peps/pep-0487/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-descriptors/#why-use-python-descriptors
https://realpython.com/python-descriptors/#lazy-properties
sleephttps://realpython.com/python-sleep/
https://realpython.com/python-descriptors/#dry-code
D.R.Y.https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-descriptors/#conclusion
Twitterhttps://www.twitter.com/mastro35
the official Python Descriptor HowTo Guidehttps://docs.python.org/3/howto/descriptor.html
https://realpython.com/feedback/survey/article/python-descriptors/liked/?from=article-footer
https://realpython.com/feedback/survey/article/python-descriptors/disliked/?from=article-footer
Python Descriptorshttps://realpython.com/courses/python-descriptors/
https://realpython.com/team/dmastromatteo/
» More about Davidehttps://realpython.com/team/dmastromatteo/
https://realpython.com/team/asantos/
Aldrenhttps://realpython.com/team/asantos/
https://realpython.com/team/gahjelle/
Geir Arnehttps://realpython.com/team/gahjelle/
https://realpython.com/team/jayazhane/
Jayahttps://realpython.com/team/jayazhane/
https://realpython.com/team/jjablonski/
Joannahttps://realpython.com/team/jjablonski/
https://realpython.com/team/mdriscoll/
Mikehttps://realpython.com/team/mdriscoll/
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-descriptors
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-descriptors
https://realpython.com/feedback/survey/article/python-descriptors/liked/?from=article-comments
https://realpython.com/feedback/survey/article/python-descriptors/disliked/?from=article-comments
LinkedInhttps://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Frealpython.com%2Fpython-descriptors%2F
Twitterhttps://twitter.com/intent/tweet/?text=Interesting%20Python%20article%20on%20%40realpython%3A%20Python%20Descriptors%3A%20An%20Introduction&url=https%3A%2F%2Frealpython.com%2Fpython-descriptors%2F
Blueskyhttps://bsky.app/intent/compose?text=Interesting%20Python%20article%20on%20%40realpython.com%3A%20Python%20Descriptors%3A%20An%20Introduction%20https%3A%2F%2Frealpython.com%2Fpython-descriptors%2F
Facebookhttps://facebook.com/sharer/sharer.php?u=https%3A%2F%2Frealpython.com%2Fpython-descriptors%2F
Get tips for asking good questionshttps://realpython.com/python-beginner-tips/#tip-9-ask-good-questions
get answers to common questions in our support portalhttps://support.realpython.com
Real Python Community Chathttps://realpython.com/community/
“Office Hours” Live Q&A Sessionhttps://realpython.com/office-hours/
intermediatehttps://realpython.com/tutorials/intermediate/
pythonhttps://realpython.com/tutorials/python/
Python Descriptorshttps://realpython.com/courses/python-descriptors/?utm_source=realpython&utm_medium=web&utm_campaign=related-course&utm_content=python-descriptors
Python Classes: The Power of Object-Oriented Programminghttps://realpython.com/python-classes/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-descriptors
Python's property(): Add Managed Attributes to Your Classeshttps://realpython.com/python-property/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-descriptors
Getters and Setters: Manage Attributes in Pythonhttps://realpython.com/python-getter-setter/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-descriptors
Primer on Python Decoratorshttps://realpython.com/primer-on-python-decorators/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-descriptors
Python args and kwargs: Demystifiedhttps://realpython.com/python-kwargs-and-args/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-descriptors
https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-descriptors%2F
Continue »https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-descriptors%2F
Sign-Inhttps://realpython.com/account/login/?next=/python-descriptors/
Start Herehttps://realpython.com/start-here/
Learning Resourceshttps://realpython.com/search
Code Mentorhttps://realpython.com/mentor/
Python Referencehttps://realpython.com/ref/
Python Cheat Sheethttps://realpython.com/cheatsheets/python/
Support Centerhttps://support.realpython.com/
Learning Pathshttps://realpython.com/learning-paths/
Quizzes & Exerciseshttps://realpython.com/quizzes/
Browse Topicshttps://realpython.com/tutorials/all/
Live Courseshttps://realpython.com/live/
Bookshttps://realpython.com/books/
Podcasthttps://realpython.com/podcasts/rpp/
Newsletterhttps://realpython.com/newsletter/
Community Chathttps://realpython.com/community/
Office Hourshttps://realpython.com/office-hours/
Learner Storieshttps://realpython.com/learner-stories/
Plans & Pricinghttps://realpython.com/account/join/
Team Planshttps://realpython.com/account/join-team/
For Businesshttps://realpython.com/account/join-team/inquiry/
For Schoolshttps://realpython.com/account/join-team/education-inquiry/
Reviewshttps://realpython.com/learner-stories/
About Ushttps://realpython.com/about/
Teamhttps://realpython.com/team/
Mission & Valueshttps://realpython.com/mission/
Editorial Guidelineshttps://realpython.com/editorial-guidelines/
Sponsorshipshttps://realpython.com/sponsorships/
Careershttps://realpython.workable.com
Press Kithttps://realpython.com/media-kit/
Merchhttps://realpython.com/merch
https://www.youtube.com/realpython
https://x.com/realpython
https://www.linkedin.com/company/realpython-com
https://www.facebook.com/LearnRealPython
https://github.com/realpython/
Privacy Policyhttps://realpython.com/privacy-policy/
Terms of Usehttps://realpython.com/terms/
Securityhttps://realpython.com/security/
Contacthttps://realpython.com/contact/
https://realpython.com/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.