Start Here
Learn Python
Start Learning
Your Learning Plan →
Your personalized Python learning plan
Python Tutorials →
In-depth articles and video courses
Learning Paths →
Guided study plans for accelerated learning
Practice
Quizzes & Exercises →
Check your learning progress
Browse Topics →
Focus on a specific area or skill level
Reference →
Concise definitions for common Python terms
Get Help
Mentor AI →
New
Your personal Python mentor
Office Hours →
Live Q&A calls with Python experts
Community Chat →
Learn with other Pythonistas
Go Deeper
Live Courses →
Live, instructor-led Python courses
Books →
Round out your knowledge and learn offline
Podcast →
Hear what’s new in the world of Python
Unlock All Content and Become a Python Expert →
Get unlimited access to all Real Python has to offer
Unlock All Content →
Become a Python Expert
More
Learner Stories
Python Newsletter
Python Job Board
Meet the Team
Become a Contributor
Search
/
Join
Sign‑In
Single and Double Underscores in Python Names
by
Leodanis Pozo Ramos
Updated
Oct 26, 2026
Reading time estimate
44m
intermediate
best-practices
python
Mark as Completed
Share
Table of Contents
Public Interfaces and Naming Conventions in Python
Single Leading Underscore in Python Names
Creating Public and Non-Public Names in Python
Using Public vs Non-Public Names in Python
Public and Non-Public Names in Modules and Packages
Internal Variables and Constants
Helper Functions
Non-Public Modules
Wildcard Imports and Non-Public Names
Class With Non-Public Members
Non-Public Attributes
Non-Public Methods
Double Leading Underscore in Classes: Python’s Name Mangling