Python Naming Conventions¶
1. General¶
- Avoid using names that are too general or too wordy. Strike a good balance between the two.
- Bad: data_structure, my_list, info_map, dictionary_for_the_purpose_of_storing_data_representing_word_definitions
- Good: user_profile, menu_options, word_definitions
- Don’t be a jackass and name things “O”, “l”, or “I”
- When using CamelCase names, capitalize all letters of an abbreviation (e.g. HTTPServer)
2. Packages¶
- Package names should be all lower case
- When multiple words are needed, an underscore should separate them
- It is usually preferable to stick to 1 word names
3. Modules¶
- Module names should be all lower case
- When multiple words are needed, an underscore should separate them
- It is usually preferable to stick to 1 word names
4. Classes¶
- Class names should follow the UpperCaseCamelCase convention
- Python’s built-in classes, however are typically lowercase words
- Exception classes should end in “Error”
5. Global (module-level) Variables¶
- Global variables should be all lowercase
- Words in a global variable name should be separated by an underscore
6. Instance Variables¶
- Instance variable names should be all lower case
- Words in an instance variable name should be separated by an underscore
- Non-public instance variables should begin with a single underscore
- If an instance name needs to be mangled, two underscores may begin its name
7. Methods¶
- Method names should be all lower case
- Words in an method name should be separated by an underscore
- Non-public method should begin with a single underscore
- If a method name needs to be mangled, two underscores may begin its name
8. Method Arguments¶
- Instance methods should have their first argument named ‘self’.
- Class methods should have their first argument named ‘cls’
9. Functions¶
- Function names should be all lower case
- Words in a function name should be separated by an underscore
10. Constants¶
- Constant names must be fully capitalized
- Words in a constant name should be separated by an underscore