Skip to main content
  1. Data Science Blog/

Python Naming Convention

·465 words·3 mins· loading · ·
Python Software Development Programming Python Programming Software Development Best Practices Best Practices Software Development

Python Naming Convention

Python Naming Convention
#

  • UPPERCASE / UPPER_CASE_WITH_UNDERSCORES => module-level constants
  • lowercase / lower_case_with_underscores => for variable and function name.
  • CapitalizedWords (or CapWords, or CamelCase – so named because of the bumpy look of its letters [4]). This is also sometimes known as StudlyCaps. => CamelCase => Class
    • Note: When using acronyms in CapWords, capitalize all the letters of the acronym. Thus HTTPServerError is better than HttpServerError.
  • mixedCase (differs from CapitalizedWords by initial lowercase character!)
  • Capitalized_Words_With_Underscores (ugly!)
  • _single_leading_underscore: weak “internal use” indicator. E.g. from M import * does not import objects whose names start with an underscore.
  • singletrailing_underscore: used by convention to avoid conflicts with Python keyword, e.g. tkinter.Toplevel(master, class_=‘ClassName’)
  • __double_leading_underscore: when naming a class attribute, invokes name mangling (inside class FooBar, boo becomes _FooBarboo; see below).
  • __double_leading_and_trailing_underscore**: “magic” objects or attributes that live in user-controlled namespaces. E.g. __init**, __import** or __file**. Never invent such names; only use them as documented.
  • Never use the characters ‘l’ (lowercase letter el), ‘O’ (uppercase letter oh), or ‘I’ (uppercase letter eye) as single character variable names.

Programming Recommendations
#

Use “is not” operator
#

  • Correct:
if foo is not None:
  • Wrong:
if not foo is None:

Always use a def statement
#

  • Correct:
def f(x): return 2*x
  • Wrong:
f = lambda x: 2*x

all try/except clauses
#

  • Correct:
try:
    value = collection[key]
except KeyError:
    return key_not_found(key)
else:
    return handle_value(value)
  • Wrong:
try:
    # Too broad!
    return handle_value(collection[key])
except KeyError:
    # Will also catch KeyError raised by handle_value()
    return key_not_found(key)

Context managers should be invoked through separate functions or methods
#

  • Correct:
with conn.begin_transaction():
    do_stuff_in_transaction(conn)
  • Wrong:
with conn:
    do_stuff_in_transaction(conn)

Be consistent in return statements
#

  • Correct:
def foo(x):
    if x >= 0:
        return math.sqrt(x)
    else:
        return None

def bar(x):
    if x < 0:
        return None
    return math.sqrt(x)
  • Wrong:
def foo(x):
    if x >= 0:
        return math.sqrt(x)

def bar(x):
    if x < 0:
        return
    return math.sqrt(x)

startswith, endswith
#

  • Use ‘’.startswith() and ‘’.endswith() instead of string slicing to check for prefixes or suffixes.
  • Correct: if foo.startswith(‘bar’):
  • Wrong: if foo[:3] == ‘bar’:

Object type comparisons
#

  • Correct: if isinstance(obj, int):
  • Wrong: if type(obj) is type(1):

Sequences, (strings, lists, tuples)
#

-For sequences, (strings, lists, tuples), use the fact that empty sequences are false:

  • Correct:
if not seq:
	if seq:
  • Wrong:
if len(seq):
	if not len(seq):

boolean value comparision
#

Don’t compare boolean values to True or False using ==:

  • Correct: if greeting:
  • Wrong: if greeting == True:
  • Worse: if greeting is True:

Assignment
#

If an assignment has a right hand side, then the equality sign should have exactly one space on both sides:

  • Correct:
code: int

class Point:
    coords: Tuple[int, int]
    label: str = '<unknown>'
  • Wrong:
code:int  # No space after colon
code : int  # Space before colon

class Test:
    result: int=0  # No spaces around equality sign

References
#

Related

Beyond AI Coding: How AI is Becoming a Knowledge Compiler for Software Engineering
·1192 words·6 mins· loading
Artificial Intelligence Software Architecture Business & Career Industry Applications AI for Software Development Software Engineering Enterprise AI Artificial Intelligence Knowledge Management Business Analytics AI Governance Future of Software Development
Beyond AI Coding: How AI is Becoming a Knowledge Compiler for Software Engineering # For the last …
From Eigenvalues to Singular Value Decomposition — How a Matrix Reveals Its Natural Directions, Strengths, and Hidden Simplicity
·4131 words·20 mins· loading
Mathematics Machine Learning Research & Academia Mathematics Mathematics for Machine Learning Mathematics for AI Applied Mathematics Machine Learning Fundamentals Dimensionality Reduction Machine Learning
From Eigenvalues to Singular Value Decomposition # How a matrix reveals its natural directions, …
One Word, Many Meanings: Understanding Every Kind of Product in Linear Algebra and Quantum Computing
·3877 words·19 mins· loading
Mathematics Machine Learning Research & Academia Mathematics Mathematics for Machine Learning Mathematics for AI Quantum Computing Machine Learning Fundamentals Applied Mathematics Machine Learning
One Word, Many Meanings: Understanding Every Kind of Product in Linear Algebra and Quantum …
Where Does Knowledge Live? Rules, Skills, Tools, and AI Employees — From the Dev Desk to the Operations Floor
·5210 words·25 mins· loading
Artificial Intelligence Developer Tools Business & Career Software Architecture AI Coding Assistants Knowledge Management AI Governance Digital Workforce Cursor IDE Quality Management Organizational Design Agentic AI
Where Does Knowledge Live? # A Knowledge Architecture for AI Workers The problem nobody talks about …
Quantum Measurement, Randomness, and Everyday Technology
·777 words·4 mins· loading
Interdisciplinary Topics Research & Academia Quantum Physics Quantum Mechanics Quantum Computing Interdisciplinary Topics
Quantum Measurement, Randomness, and Everyday Technology # This is Part 2 of Learning Quantum …