When you are designing a class, you need to ensure that the classification of its critical parts is outlined at the beginning. The clearer the initial design, the more performant and scalable the class is. Some of the components in the order in which they should be defined in the class are mentioned as follows.
Ideal structure of a class
Class variables
Constants or default variables are usually defined at the top of the class. For someone who is reading the code, it comes as an easy-to-view consolidated list, and for the interpreter it ensures that all such variables are processed before diving into the main logic of the class, including any other Instance method or constructor.
The __init__ method
Special Python methods
These methods change the functionality of the class or provide additional capabilities to the class. For example, descriptors and other meta classes like __call__ are special methods.
Class method
Class methods are callable even without instantiating the class. Therefore, they can be treated on an equivalent level as constructors.
Static method
Static methods are same as the class methods in terms of functionality.
Keeping them next in line is the natural and more useful convention here.
Private method
Python does not have a concept of privacy when it comes to methods. There are no access-specifiers like Java or C++.
However, as we've read earlier, conventionally, the methods beginning with an underscore (_) are treated to be for internal use only, and not exposed via bulk import.
Note that the order of the Private methods relative to the Instance methods is not fixed.
Instance method
The Instance methods are what you use to add functionality or the business logic to the class and can access the data of the instances of the class.
In succession to the preceding methods, these define the core functionality of the class, rather than the meta-information, and hence should be placed after the preceding methods.
References
Comments
Post a Comment
Thanks for your message. We will get back you.