🐍 The naming conventions in Python are defined in the official PEP 8 Style Guide. They ensure uniform, readable, and maintainable code. Here’s a comprehensive overview:
🧠 Naming Conventions in Python (PEP 8)
#
🔤 1. General Rules
#
- Use descriptive names – no cryptic abbreviations.
- Use English terms, unless you’re working on a project with another language.
- Use snake_case for functions, variables, and methods.
- Use PascalCase for classes.
- Use UPPER_CASE for constants.
📦 2. Modules and Packages
#
| Element |
Convention |
Example |
| Module name |
lowercase or snake_case |
math_tools.py |
| Package name |
lowercase |
utilities |
🧮 3. Variables
#
| Type |
Convention |
Example |
| Local Variable |
snake_case |
student_count |
| Global Variable |
snake_case |
max_value |
| Constant |
UPPER_CASE |
PI = 3.14159 |
🧪 4. Functions and Methods
#
| Type |
Convention |
Example |
| Function |
snake_case |
calculate_grade() |
| Instance Method |
snake_case |
draw_shape() |
| Class Method |
snake_case |
create_from_dict() |
| Static Method |
snake_case |
is_valid() |
🧱 5. Classes
#
| Type |
Convention |
Example |
| Class |
PascalCase |
Student, TurtleArtist |
| Exception Class |
PascalCase |
FileError |
🔮 6. Magic Methods (Dunder Methods)
#
| Type |
Convention |
Example |
| Special Methods |
__method__ |
__init__, __str__, __repr__ |
🛡️ 7. Private and Protected Names
#
| Type |
Convention |
Example |
| Protected |
_name |
_internal_method() |
| Private |
__name |
__secret_data |
🧪 8. Class Attributes vs. Instance Attributes
#
- Class attributes:
snake_case, often with @classmethod
- Instance attributes:
self.attribute_name
🧠 Memory Rules:
#
- Functions, Variables, Methods →
snake_case
- Classes, Exceptions →
PascalCase
- Constants →
UPPER_CASE
- Private Things → start with
_ or __
Yes, CamelCase exists in Python – but it’s only recommended in specific cases. 🐍 The official convention according to PEP 8 is:
🐫 CamelCase vs. PascalCase vs. snake_case
#
| Style |
Description |
Example |
Usage in Python |
snake_case |
Lowercase with underscores |
calculate_grade() |
✅ Functions, Variables |
PascalCase |
Capital letters at word beginnings |
StudentClass |
✅ Class names |
camelCase |
First word lowercase, then capitalized |
calculateGrade() |
❌ Not recommended in Python |
❌ Why camelCase is not common in Python:
#
- It comes from other languages like JavaScript, Java, or C#.
- Python prefers readability through underscores (
snake_case).
- Consistent style is important for collaboration and maintenance.
✅ When you still see CamelCase:
#
- When working with external libraries that come from other languages.
- In JSON data or APIs, e.g.:
{
"userName": "Lena",
"userAge": 12
}
- When importing JavaScript objects in web projects with Python backends.
🧠 Conclusion for Students:
#
In Python:
🔤 Functions & Variables → snake_case
🧱 Classes → PascalCase
🐫 camelCase → better avoid!