Python Course Guide
  • Introduction to Python
  • Guides
    • Course Outline
    • Getting started with Python
    • Syntax
    • Variables
    • Datatypes
    • Casting
    • Numbers
    • Operators
      • Python Math
    • Strings
    • Python String Formatting
    • User Input
    • Git and Github
    • Booleans
    • List
    • Tuples
    • Sets
    • Dictionaries
    • Conditionals
    • Loops
    • Function
    • Arrays
    • Try and Except
    • Scope
    • Classes and Objects
    • Class Methods and Properties
    • Inheritance
    • Polymorphism
    • Dunder Methods(Double Underscore Methods)
    • Decorators
    • Iterator and Generator
    • Modules and Packages
    • Date and Time
    • JSON
    • RegEx
    • Pip
    • File Handling
    • Data Structures and Alogrithms
    • References
Powered by GitBook
On this page
  1. Guides

Class Methods and Properties

Class methods and properties are essential components of object-oriented programming in Python. They allow you to define methods and attributes that are associated with a class itself rather than with its instances (objects). This can be useful for managing class-level data and behavior. Here's an explanation of class methods and properties:

Class Methods:

A class method is a method that is bound to the class and not the instance of the class. You define a class method using the `@classmethod` decorator. It takes the class itself as its first argument, which is typically named `cls` by convention.

class MyClass:
    class_variable = 0  # A class-level variable
   
    def __init__(self, value):
        self.value = value
   
    @classmethod
    def increment_class_variable(cls, amount):
        cls.class_variable += amount

# Using the class method

obj1 = MyClass(1)
obj2 = MyClass(2)
 
print(MyClass.class_variable)  # Output: 0
MyClass.increment_class_variable(5)
print(MyClass.class_variable)  # Output: 5   

In this example, `increment_class_variable` is a class method that modifies the class-level variable `class_variable`. You can call this method on the class itself (`MyClass`) rather than on instances (`obj1` or `obj2`).

Class Properties:

A class property is an attribute that is associated with the class and not with instances of the class. You can define class properties using the `@property` decorator. These properties can be accessed like regular attributes but are computed using special methods.

class Circle:
    def __init__(self, radius):
        self.radius = radius
   
    @property
    def diameter(self):
        return 2 * self.radius
   
    @property
    def area(self):
        return 3.14 * self.radius  2
 
circle = Circle(5)
print(circle.radius)   # Output: 5
print(circle.diameter) # Output: 10
print(circle.area)     # Output: 78.5

In this example, `diameter` and `area` are class properties that provide computed values based on the `radius` attribute. When you access these properties, they are calculated on-the-fly using the defined methods.

Class methods and properties are valuable tools for managing class-level behaviour and data. They are particularly useful when you need to work with data that is shared among all instances of a class or when you want to provide computed attributes for your classes.

PreviousClasses and ObjectsNextInheritance

Last updated 1 year ago