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

Experimenting with Vertex AI: A Practical Guide from Account Setup to First Model Call
·4895 words·23 mins· loading
Cloud Computing Artificial Intelligence LLM Vertex AI Google Cloud Platform Gemini GCP Vertex AI Studio Model Garden IAM MLOps
Experimenting with Vertex AI: A Practical Guide from Account Setup to First Model Call # 1. …
Cursor Chat: Architecture, Data Flow & Storage
·1318 words·7 mins· loading
Artificial Intelligence Developer Tools Software Architecture Cursor IDE Cursor Chat AI Code Editor SQLite Turbopuffer Codebase Indexing RAG Semantic Search Data Flow Local Storage Composer
Cursor Chat: Architecture, Data Flow & Storage # This document explains how Cursor chat works …
Safeguarding PII When Using LLMs in Alternative Investment Banking
·4261 words·21 mins· loading
Artificial Intelligence Financial Technology Data Privacy PII Protection LLM Privacy Alternative Investment Banking BFSI Data Privacy AI Compliance Differential Privacy Federated Learning Financial AI Security
Safeguarding PII When Using LLMs in Alternative Investment Banking # 1. Introduction # The …
AI Hallucinations in BFSI - A Comprehensive Guide
·2975 words·14 mins· loading
Artificial Intelligence Financial Technology AI Hallucinations BFSI AI Implementation Financial AI Risk Management Banking AI Ethics RAG in Finance Knowledge Graphs BFSI LLM Risk Mitigation Financial AI Compliance
AI Hallucinations in the BFSI Domain - A Comprehensive Guide # Introduction # Artificial …
Roadmap to Reality
·990 words·5 mins· loading
Philosophy & Cognitive Science Interdisciplinary Topics Scientific Journey Self-Discovery Personal Growth Cosmic Perspective Human Evolution Technology Biology Neuroscience
Roadmap to Reality # A Scientific Journey to Know the Universe — and the Self # 🌱 Introduction: The …