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"
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
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
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