X Tutup
Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 2.31 KB

File metadata and controls

63 lines (47 loc) · 2.31 KB
title Python classmethod() built-in function - Python Cheatsheet
description Transform a method into a class method. A class method receives the class as an implicit first argument, just like an instance method receives the instance.
Python classmethod() built-in function From the Python 3 documentation Transform a method into a class method. A class method receives the class as an implicit first argument, just like an instance method receives the instance.

Introduction

A classmethod is a method that is bound to the class and not the instance of the class. It takes the class itself as its first argument, conventionally named cls. This is in contrast to a regular instance method, which takes the instance as its first argument (self).

They are often used for factory methods that create instances of the class in a specific way.

Example

Here's a common use case: creating a factory method that can instantiate the class from a different data format, like a dictionary.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def from_dict(cls, data):
        # This is a factory method that creates a Person instance from a dictionary
        return cls(data['name'], data['age'])

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Data for a new person
person_data = {'name': 'John', 'age': 30}

# Create a Person instance using the class method
p = Person.from_dict(person_data)

p.display()
Name: John, Age: 30

Relevant links

  • Cheatsheet: OOP Basics
  • Cheatsheet: Decorators
  • Cheatsheet: Functions
  • staticmethod()
  • property()
  • object()
X Tutup