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

From Claw Code to Clean Room: A Developer's Guide to Re-implementing Software Without Getting Sued
·2854 words·14 mins· loading
AI Ethics & Governance Software Development Technology Trends & Future Clean Room Design Intellectual Property AI Code Generation Software Copyright Trade Secrets Software Development
From Claw Code to Clean Room: A Developer’s Guide to Re-implementing Software Without Getting …
100 Websites You Only Need on the Internet
·1402 words·7 mins· loading
Data Science Resources Data Science Artificial Intelligence Developer Tools AI Tools Productivity Tools Online Learning
100 Websites You Only Need on the Internet # The internet has billions of pages. Most of them are …
The AI Leadership Playbook: A Reusable Workflow Template
·939 words·5 mins· loading
Business & Career Artificial Intelligence Career Development AI Integration Generative AI Future of Work
The AI Leadership Playbook: A Reusable Workflow Template # Part 7 of the Human Skills, AI-Expanded …
Agentic AI for Business Leaders: When Agents Help and When They Do Not
·967 words·5 mins· loading
Artificial Intelligence Business & Career Technology Trends & Future Career Development AI Integration Generative AI Future of Work
Agentic AI for Business Leaders: When Agents Help and When They Do Not # Part 6 of the Human …
AI for Technology Executives: Scenarios and Prompts
·1169 words·6 mins· loading
Business & Career Artificial Intelligence Technology Trends & Future Career Development AI Integration Generative AI Cybersecurity
AI for Technology Executives: Scenarios and Prompts # Part 5 of the Human Skills, AI-Expanded …