Table of Contents
Class Method Differences in Python: Bound, Unbound, and Static
Bound Methods
Unbound Methods
Static Methods
Home Backend Development Python Tutorial What are the Differences Between Bound, Unbound, and Static Class Methods in Python?

What are the Differences Between Bound, Unbound, and Static Class Methods in Python?

Nov 12, 2024 am 10:16 AM

What are the Differences Between Bound, Unbound, and Static Class Methods in Python?

Class Method Differences in Python: Bound, Unbound, and Static

In Python, class methods can be categorized into three types: bound, unbound, and static. Understanding the distinctions between these types is crucial for effective class design and object interaction.

Bound Methods

Bound methods are associated with a specific instance of a class. When called, the first argument is automatically bound to the calling instance. This allows access to instance-specific attributes and methods within the method's execution. In the example provided, method_one is a bound method:

class Test(object):
    def method_one(self):
        print("Called method_one")
Copy after login

When invoked via an instance, bound methods behave as expected:

a_test = Test()
a_test.method_one()  # Output: Called method_one
Copy after login

Unbound Methods

Unbound methods are not associated with any specific instance of a class. When called, the first argument is not automatically bound to an instance, and they cannot access instance-specific data. In the example, method_two is an unbound method:

class Test(object):
    def method_two():
        print("Called method_two")
Copy after login

Attempts to invoke unbound methods via instances result in a TypeError since no instance is provided:

a_test = Test()
a_test.method_two()  # Error: TypeError: method_two() takes no arguments (1 given)
Copy after login

Static Methods

Static methods are not associated with any instance or class and behave like regular functions. They can be accessed directly from the class or using instances, but they have no inherent access to instance-specific data. Static methods are typically used for utility functions or class-level operations:

class Test(object):
    @staticmethod
    def method_two():
        print("Called method_two")
Copy after login

Static methods can be invoked both on instances and the class itself:

a_test = Test()
a_test.method_two()  # Output: Called method_two
Test.method_two()  # Output: Called method_two
Copy after login

The above is the detailed content of What are the Differences Between Bound, Unbound, and Static Class Methods in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How Do I Use Beautiful Soup to Parse HTML? How Do I Use Beautiful Soup to Parse HTML? Mar 10, 2025 pm 06:54 PM

How Do I Use Beautiful Soup to Parse HTML?

How to Use Python to Find the Zipf Distribution of a Text File How to Use Python to Find the Zipf Distribution of a Text File Mar 05, 2025 am 09:58 AM

How to Use Python to Find the Zipf Distribution of a Text File

Image Filtering in Python Image Filtering in Python Mar 03, 2025 am 09:44 AM

Image Filtering in Python

How to Perform Deep Learning with TensorFlow or PyTorch? How to Perform Deep Learning with TensorFlow or PyTorch? Mar 10, 2025 pm 06:52 PM

How to Perform Deep Learning with TensorFlow or PyTorch?

Introduction to Parallel and Concurrent Programming in Python Introduction to Parallel and Concurrent Programming in Python Mar 03, 2025 am 10:32 AM

Introduction to Parallel and Concurrent Programming in Python

Serialization and Deserialization of Python Objects: Part 1 Serialization and Deserialization of Python Objects: Part 1 Mar 08, 2025 am 09:39 AM

Serialization and Deserialization of Python Objects: Part 1

How to Implement Your Own Data Structure in Python How to Implement Your Own Data Structure in Python Mar 03, 2025 am 09:28 AM

How to Implement Your Own Data Structure in Python

Mathematical Modules in Python: Statistics Mathematical Modules in Python: Statistics Mar 09, 2025 am 11:40 AM

Mathematical Modules in Python: Statistics

See all articles