Let's say I have a class in Python like this:
class Student:
def __init__(self, classs):
self.classs = classs
Now, what's convention for naming a parameter (and class property) classs
? I saw classs
as well as klass
and I'm wondering: is there some convention for it? Didn't find it in PEP8.
Class names should be nouns, in mixed case with the first letter of each internal word capitalized. Try to keep your class names simple and descriptive. Use whole words-avoid acronyms and abbreviations (unless the abbreviation is much more widely used than the long form, such as URL or HTML).
Method name in PythonUse only lowercase in method names. An underscore should separate words in a method name. Non-public method name should begin with a single underscore. Use two consecutive underscores at the beginning of a method name, if it needs to be mangled.
Convention means a certain way in which things are done within a community to ensure order. Similarly, Coding conventions are also a set of guidelines, but for a programming language that recommends programming style, practices, and methods.
PEP 8 advises to use a trailing underscore in that case: class_
.
See https://www.python.org/dev/peps/pep-0008/#descriptive-naming-styles for details:
single_trailing_underscore_ : used by convention to avoid conflicts with Python keyword, e.g.
Tkinter.Toplevel(master, class_='ClassName')
The answer of class_
from PEP 8 is awkward, in my opinion, and possibly problematic as commented elsewhere for that answer to this question. The PyCharm IDE seems to prefer cls
for class methods, which annoys me for its coder-happy abbreviation, while the arguably more or less readable and understandable klass
is still a misspelling. So I'd like to throw out an alternative for these situations, including class wrappers and the like:
I use Class
, which is not reserved due to the casing.
I know a lot of people are going to say that variables names should be lowercase, but the lines between object and type, class and function, variable and pre-defined are all blurred in Python. For instance, if I were to write:
NoneType = type(None)
would you argue that it should be renamed NONE_TYPE
because it's global? NoneType
is a class, though it is not defined using the class
keyword. Likewise Class
is a class, although it's also a variable. By capitalizing it, I'm just emphasizing one aspect over another. And I do this for all variables representing types.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With