PEP8 has emerged as the style guide that most projects. it promotes a very readable and eye-pleasing coding style. It’s a well-established convention in the Python community, and in general, we should follow these.
The style guide is about consistency.
Consistency with this style guide is important.
Consistency within a project is more important.
Consistency within one module or function is most important.
Google has put together a really nice style guide summary, which can be found here:
Each style point has a summary for which additional information.
- Python – Quick Guide
- Python Programming – Scope and Module
- Most Common Python Coding Interview Questions Answers For 2021
Python Language Rules
pychecker
- Run pychecker over your code.
Imports
- Use imports for packages and modules only.
Packages
- Import each module using the full pathname location of the module.
Exceptions
- Exceptions are allowed but must be used carefully.
Global variables
- Avoid global variables.
Nested/Local/Inner Classes and Functions
- Nested/local/inner classes and functions are fine.
List Comprehensions
- Okay to use for simple cases.
Default Iterators and Operators
- Use default iterators and operators for types that support them, like lists, dictionaries, and files.
Generators
- Use generators as needed.
Lambda Functions
- Okay for one-liners.
Conditional Expressions
- Okay for one-liners.
Default Argument Values
- Okay in most cases.
Properties
- Use properties for accessing or setting data where you would normally have used simple, lightweight accessor or setter methods.
True/False evaluations
- Use the “implicit” false if at all possible.
Deprecated Language Features
- Use string methods instead of the string module where possible. Use function call syntax instead of apply. Use list comprehensions and for loops instead of filter and map when the function argument would have been an inlined lambda anyway. Use for loops instead of reduce.
Lexical Scoping
- Okay to use.
Function and Method Decorators
- Use decorators judiciously when there is a clear advantage.
Threading
- Do not rely on the atomicity of built-in types.
Power Features
- Avoid these features.