Phil Phil - 2 months ago 4x
Python Question

How should I name my classes and function and even strings?

I am new to Python as you might tell. I have read various documents but I still can not figure out if there's a

"naming best practices"
for strings functions and of course, classes.

If I want to name a class or a function as a SiteMap, is it ok to use SiteMap? Should it be Site_map or any other thing, for example?

Thank you!

PS. any further reading resource is GREATLY appreciated!
PS. I am doing web-app development (learning, better to say!)


Naming Conventions:

There are various Python naming conventions I use. Consistency here is certainly good as it helps to identify what sort of object names point to. I think the conventions I use basically follow PEP8.

1) Module names should be lowercase with underscores instead of spaces. (And should be valid module names for importing.)

2) Variable names and function/method names should also be lowercase with underscores to separate words.

3) Class names should be CamelCase (uppercase letter to start with, words run together, each starting with an uppercase letter).

4) Module constants should be all uppercase.

E.g. You would typically have module.ClassName.method_name.

5) Module names in CamelCase with a main class name identical to the module name are annoying. (e.g. ConfigParser.ConfigParser, which should always be spelt configobj.ConfigObj.)

6) Also, variables, functions, methods and classes which aren't part of your public API, should begin with a single underscore. (using double underscores to make attributes private almost always turns out to be a mistake - especially for testability.)


And finally, you should always have whitespace around operators and after punctuation. The exception is default arguments to methods and functions.

E.g. def function(default=argument): and x = a * b + c