Hướng dẫn what is method in class in python? - phương thức trong lớp trong python là gì?

Trong lập trình hướng đối tượng, chúng tôi sử dụng các phương thức thể hiện và phương thức lớp. Bên trong một lớp, chúng ta có thể xác định ba loại phương thức sau.

  • Phương thức ví dụ: Được sử dụng để truy cập hoặc sửa đổi trạng thái đối tượng. Nếu chúng ta sử dụng các biến thể hiện bên trong một phương thức, các phương thức như vậy được gọi là các phương thức thể hiện. Nó phải có tham số
    Jessa's age is: 20
    John's age is: 26
    5 để tham khảo đối tượng hiện tại.
    : Used to access or modify the object state. If we use instance variables inside a method, such methods are called instance methods. It must have a
    Jessa's age is: 20
    John's age is: 26
    5 parameter to refer to the current object.
  • Phương pháp lớp: Được sử dụng để truy cập hoặc sửa đổi trạng thái lớp. Trong việc thực hiện phương thức, nếu chúng ta chỉ sử dụng các biến lớp, thì loại phương thức như vậy, chúng ta nên khai báo như một phương thức lớp. Phương thức lớp có tham số
    Jessa's age is: 20
    John's age is: 26
    6 đề cập đến lớp.
    : Used to access or modify the class state. In method implementation, if we use only class variables, then such type of methods we should declare as a class method. The class method has a
    Jessa's age is: 20
    John's age is: 26
    6 parameter which refers to the class.
  • Phương pháp tĩnh: Đây là một phương pháp tiện ích chung thực hiện một nhiệm vụ trong sự cô lập. Bên trong phương pháp này, chúng tôi không sử dụng phiên bản hoặc biến lớp vì phương thức tĩnh này không có bất kỳ tham số nào như
    Jessa's age is: 20
    John's age is: 26
    5 và
    Jessa's age is: 20
    John's age is: 26
    6.
    : It is a general utility method that performs a task in isolation. Inside this method, we don’t use instance or class variable because this static method doesn’t take any parameters like
    Jessa's age is: 20
    John's age is: 26
    5 and
    Jessa's age is: 20
    John's age is: 26
    6.

Ngoài ra, đọc phương thức lớp Python so với phương pháp tĩnh so với phương thức thể hiện. Python Class method vs Static method vs Instance method.

Sau khi đọc bài viết này, bạn sẽ học::

  • Cách tạo và sử dụng các phương thức lớp trong Python
  • Tạo phương thức lớp bằng cách sử dụng hàm trang trí
    Jessa's age is: 20
    John's age is: 26
    9 và
    classmethod(function)
    0
  • cách thêm các phương thức lớp thêm hoặc xóa các phương thức lớp

Phương pháp lớp trong Python là gì

Các phương thức lớp là các phương thức được gọi trên chính lớp, không phải trên một thể hiện đối tượng cụ thể. Do đó, nó thuộc về cấp độ lớp và tất cả các trường hợp lớp chia sẻ một phương thức lớp.

  • Một phương thức lớp bị ràng buộc với lớp và không phải là đối tượng của lớp. Nó chỉ có thể truy cập các biến lớp. and not the object of the class. It can access only class variables.
  • Nó có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp.

Trong thực hiện phương thức, nếu chúng ta chỉ sử dụng các biến lớp, chúng ta nên khai báo các phương thức như phương thức lớp. Phương thức lớp có

Jessa's age is: 20
John's age is: 26
6 là tham số đầu tiên, đề cập đến lớp.

Phương pháp lớp được sử dụng khi chúng ta đang xử lý các phương pháp nhà máy. Phương pháp nhà máy là những phương pháp trả về một đối tượng lớp cho các trường hợp sử dụng khác nhau. Do đó, các phương pháp nhà máy tạo ra việc triển khai cụ thể của một giao diện chung.dealing with factory methods. Factory methods are those methods that return a class object for different use cases. Thus, factory methods create concrete implementations of a common interface.

Phương pháp lớp có thể được gọi bằng cách sử dụng

classmethod(function)
2 cũng như bằng cách sử dụng một đối tượng của lớp.

Hướng dẫn what is method in class in python? - phương thức trong lớp trong python là gì?
Xác định phương pháp lớp

Xác định phương pháp lớp

Bất kỳ phương thức nào chúng tôi tạo trong một lớp sẽ tự động được tạo như một phương thức thể hiện. Chúng ta phải nói rõ ràng với Python rằng đó là một phương pháp lớp sử dụng hàm trang trí

Jessa's age is: 20
John's age is: 26
9 hoặc
classmethod(function)
0.

Các phương thức lớp được xác định bên trong một lớp và nó khá giống với việc xác định chức năng & nbsp;

Giống như, bên trong một phương thức thể hiện, chúng tôi sử dụng từ khóa

Jessa's age is: 20
John's age is: 26
5 để truy cập hoặc sửa đổi các biến thể hiện. Tương tự bên trong phương thức lớp, chúng tôi sử dụng từ khóa
Jessa's age is: 20
John's age is: 26
6 làm tham số đầu tiên để truy cập các biến lớp. Do đó, phương pháp lớp cho phép chúng tôi kiểm soát thay đổi trạng thái lớp.

  • Bạn có thể sử dụng a & nbsp; biến & nbsp; được đặt tên khác nhau cho & nbsp; ____ 16, nhưng nó không được khuyến khích vì bản thân là quy ước được đề xuất trong Python.
  • Phương thức lớp chỉ có thể truy cập các thuộc tính lớp, không phải thuộc tính thể hiện

Ví dụ 1: Tạo phương thức lớp bằng cách sử dụng bộ trang trí @ClassMethod

Để tạo phương thức làm phương thức lớp, hãy thêm

Jessa's age is: 20
John's age is: 26
9 Trình trang trí trước định nghĩa phương thức và thêm
Jessa's age is: 20
John's age is: 26
6 làm tham số đầu tiên cho phương thức.

Bộ trang trí

Jessa's age is: 20
John's age is: 26
9 là một công cụ trang trí chức năng tích hợp. Trong Python, chúng tôi sử dụng trình trang trí
Jessa's age is: 20
John's age is: 26
9 để khai báo một phương pháp như một phương pháp lớp. Bộ trang trí
Jessa's age is: 20
John's age is: 26
9 là một biểu thức được đánh giá sau khi chức năng của chúng tôi được xác định.

Hãy cùng xem cách tạo phương thức nhà máy bằng phương pháp lớp. Trong ví dụ này, chúng tôi sẽ tạo một đối tượng lớp học sinh bằng phương pháp lớp.

from datetime import date

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

    @classmethod
    def calculate_age(cls, name, birth_year):
        # calculate age an set it as a age
        # return new object
        return cls(name, date.today().year - birth_year)

    def show(self):
        print(self.name + "'s age is: " + str(self.age))

jessa = Student('Jessa', 20)
jessa.show()

# create new object using the factory method
joy = Student.calculate_age("Joy", 1995)
joy.show()

Đầu ra

Jessa's age is: 20
John's age is: 26
  • Trong ví dụ trên, chúng tôi đã tạo hai đối tượng, một đối tượng sử dụng hàm tạo và thứ hai bằng phương pháp
    class School:
        # class variable
        name = 'ABC School'
    
        def school_name(cls):
            print('School Name is :', cls.name)
    
    # create class method
    School.school_name = classmethod(School.school_name)
    
    # call class method
    School.school_name()
    
    3.
  • Trình xây dựng lấy hai đối số tên và tuổi. Mặt khác, phương thức lớp lấy
    Jessa's age is: 20
    John's age is: 26
    6,
    class School:
        # class variable
        name = 'ABC School'
    
        def school_name(cls):
            print('School Name is :', cls.name)
    
    # create class method
    School.school_name = classmethod(School.school_name)
    
    # call class method
    School.school_name()
    
    5 và
    class School:
        # class variable
        name = 'ABC School'
    
        def school_name(cls):
            print('School Name is :', cls.name)
    
    # create class method
    School.school_name = classmethod(School.school_name)
    
    # call class method
    School.school_name()
    
    6 và trả về một thể hiện lớp mà không có gì ngoài một đối tượng mới.
  • Bộ trang trí
    Jessa's age is: 20
    John's age is: 26
    9 được sử dụng để chuyển đổi phương thức
    class School:
        # class variable
        name = 'ABC School'
    
        def school_name(cls):
            print('School Name is :', cls.name)
    
    # create class method
    School.school_name = classmethod(School.school_name)
    
    # call class method
    School.school_name()
    
    3 sang phương pháp lớp.
  • Phương thức
    class School:
        # class variable
        name = 'ABC School'
    
        def school_name(cls):
            print('School Name is :', cls.name)
    
    # create class method
    School.school_name = classmethod(School.school_name)
    
    # call class method
    School.school_name()
    
    3 lấy lớp sinh viên (
    Jessa's age is: 20
    John's age is: 26
    6) làm tham số đầu tiên và trả về hàm tạo bằng cách gọi
    School Name is : ABC School
    1, tương đương với
    School Name is : ABC School
    2.

Ví dụ 2: Tạo phương thức lớp bằng hàm classMethod ()

Ngoài một bộ trang trí, hàm tích hợp

classmethod(function)
0 được sử dụng để chuyển đổi phương pháp bình thường thành phương pháp lớp. ________ 44 & nbsp; là một hàm sẵn có trong Python, trả về một phương thức lớp cho một hàm nhất định.

Syntax::

classmethod(function)
  • School Name is : ABC School
    5: Đây là tên của phương thức bạn muốn chuyển đổi như một phương thức lớp.
  • Nó trả về phương thức lớp đã chuyển đổi.

Lưu ý: Phương thức bạn muốn chuyển đổi dưới dạng phương thức lớp phải chấp nhận lớp (

Jessa's age is: 20
John's age is: 26
6) là đối số đầu tiên, giống như một phương thức thể hiện nhận phiên bản (
Jessa's age is: 20
John's age is: 26
5).
: The method you want to convert as a class method must accept class (
Jessa's age is: 20
John's age is: 26
6) as the first argument, just like an instance method receives the instance (
Jessa's age is: 20
John's age is: 26
5).

Như chúng ta đã biết, phương thức lớp bị ràng buộc với lớp chứ không phải là một đối tượng. Vì vậy, chúng ta có thể gọi phương thức lớp cả bằng cách gọi lớp và đối tượng.

Hàm

classmethod(function)
0 là cách cũ hơn để tạo phương thức lớp trong Python. Trong một phiên bản mới hơn của Python, chúng ta nên sử dụng trình trang trí
Jessa's age is: 20
John's age is: 26
9 để tạo phương thức lớp.

Ví dụ: Tạo phương thức lớp bằng hàm

classmethod(function)
0: Create class method using
classmethod(function)
0 function

class School:
    # class variable
    name = 'ABC School'

    def school_name(cls):
        print('School Name is :', cls.name)

# create class method
School.school_name = classmethod(School.school_name)

# call class method
School.school_name()

Đầu ra

School Name is : ABC School

Ví dụ 3: Truy cập các biến lớp trong các phương thức lớp

Sử dụng phương thức lớp, chúng tôi chỉ có thể truy cập hoặc sửa đổi các biến lớp. Hãy cùng xem cách truy cập và sửa đổi các biến lớp trong phương thức lớp.

Các biến lớp là & nbsp; được chia sẻ bởi tất cả các trường hợp của một lớp. Sử dụng phương thức lớp, chúng ta có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp.shared by all instances of a class. Using the class method we can modify the class state by changing the value of a class variable that would apply across all the class objects.

class Student:
    school_name = 'ABC School'

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

    @classmethod
    def change_school(cls, school_name):
        # class_name.class_variable
        cls.school_name = school_name

    # instance method
    def show(self):
        print(self.name, self.age, 'School:', Student.school_name)

jessa = Student('Jessa', 20)
jessa.show()

# change school_name
Student.change_school('XYZ School')
jessa.show()

Output::

Jessa 20 School: ABC School
Jessa 20 School: XYZ School

Phương pháp lớp trong kế thừa

Trong kế thừa, phương pháp lớp của lớp cha có sẵn cho một lớp con.

Hãy để tạo ra một lớp xe có chứa phương thức lớp nhà máy từ_price () sẽ trả lại một thể hiện phương tiện từ một mức giá. Khi chúng ta gọi cùng một phương thức bằng cách sử dụng tên lớp trẻ con, nó sẽ trả về đối tượng lớp trẻ con.

Bất cứ khi nào chúng tôi lấy một lớp từ một lớp cha có phương thức lớp thì nó sẽ tạo đúng phiên bản của lớp dẫn xuất. Ví dụ sau đây cho thấy phương thức lớp hoạt động như thế nào trong kế thừa.

Thí dụ

class Vehicle:
    brand_name = 'BMW'

    def __init__(self, name, price):
        self.name = name
        self.price = price

    @classmethod
    def from_price(cls, name, price):
        # ind_price = dollar * 76
        # create new Vehicle object
        return cls(name, (price * 75))

    def show(self):
        print(self.name, self.price)

class Car(Vehicle):
    def average(self, distance, fuel_used):
        mileage = distance / fuel_used
        print(self.name, 'Mileage', mileage)

bmw_us = Car('BMW X5', 65000)
bmw_us.show()

# class method of parent class is available to child class
# this will return the object of calling class
bmw_ind = Car.from_price('BMW X5', 65000)
bmw_ind.show()

# check type
print(type(bmw_ind))

Đầu ra

BMW X5 65000
BMW X5 4875000
class '__main__.Car'

Ví dụ 3: Truy cập các biến lớp trong các phương thức lớp

Sử dụng phương thức lớp, chúng tôi chỉ có thể truy cập hoặc sửa đổi các biến lớp. Hãy cùng xem cách truy cập và sửa đổi các biến lớp trong phương thức lớp.

Các biến lớp là & nbsp; được chia sẻ bởi tất cả các trường hợp của một lớp. Sử dụng phương thức lớp, chúng ta có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp.

Example:

Phương pháp lớp trong kế thừa

class Student:
    school_name = 'ABC School'

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

    def show(self):
        print(self.name, self.age)

# class ended

# method outside class
def exercises(cls):
    # access class variables
    print("Below exercises for", cls.school_name)

# Adding class method at runtime to class
Student.exercises = classmethod(exercises)

jessa = Student("Jessa", 14)
jessa.show()
# call the new method
Student.exercises()

Đầu ra

Jessa's age is: 20
John's age is: 26
0

Ví dụ 3: Truy cập các biến lớp trong các phương thức lớp

Sử dụng phương thức lớp, chúng tôi chỉ có thể truy cập hoặc sửa đổi các biến lớp. Hãy cùng xem cách truy cập và sửa đổi các biến lớp trong phương thức lớp.

  • Các biến lớp là & nbsp; được chia sẻ bởi tất cả các trường hợp của một lớp. Sử dụng phương thức lớp, chúng ta có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp.
  • Phương pháp lớp trong kế thừa

Các biến lớp là & nbsp; được chia sẻ bởi tất cả các trường hợp của một lớp. Sử dụng phương thức lớp, chúng ta có thể sửa đổi trạng thái lớp bằng cách thay đổi giá trị của biến lớp sẽ áp dụng trên tất cả các đối tượng lớp.

Phương pháp lớp trong kế thừa

Example::

Trong kế thừa, phương pháp lớp của lớp cha có sẵn cho một lớp con.

Jessa's age is: 20
John's age is: 26
1

Đầu ra

Jessa's age is: 20
John's age is: 26
2

Ví dụ 3: Truy cập các biến lớp trong các phương thức lớp

Sử dụng phương thức lớp, chúng tôi chỉ có thể truy cập hoặc sửa đổi các biến lớp. Hãy cùng xem cách truy cập và sửa đổi các biến lớp trong phương thức lớp.

Thí dụ

Jessa's age is: 20
John's age is: 26
3

Đầu ra

Jessa's age is: 20
John's age is: 26
2

Phương pháp trong một lớp là gì?

Một phương thức là một phần tử thực thi được xác định bởi một lớp. Các hệ thống IRIS hỗ trợ hai loại phương thức: Phương thức thể hiện và phương thức lớp. Một phương thức thể hiện được gọi từ một trường hợp cụ thể của một lớp và thường thực hiện một số hành động liên quan đến trường hợp đó.an executable element defined by a class. InterSystems IRIS supports two types of methods: instance methods and class methods. An instance method is invoked from a specific instance of a class and typically performs some action related to that instance.

Phương pháp __ trong Python là gì?

Phương thức __call__ cho phép các lập trình viên Python viết các lớp trong đó các trường hợp hoạt động như các chức năng. Cả hai chức năng và các trường hợp của các lớp đó được gọi là các thiết bị gọi.enables Python programmers to write classes where the instances behave like functions. Both functions and the instances of such classes are called callables.

3 loại phương pháp trong Python là gì?

Về cơ bản có ba loại phương thức trong phương pháp Python: ví dụ.Phương pháp lớp.Phương pháp tĩnh ...
Một phương thức thể hiện biết thể hiện của nó (và từ đó, đó là lớp).
Một phương pháp lớp biết lớp của nó ..
Một phương thức tĩnh không biết lớp hoặc trường hợp của nó ..

Phương pháp lớp và đối tượng trong Python là gì?

Các lớp Python và đối tượng Python là một ngôn ngữ lập trình định hướng đối tượng.Hầu hết mọi thứ trong Python là một đối tượng, với các thuộc tính và phương pháp của nó.Một lớp giống như một hàm tạo đối tượng hoặc "bản thiết kế" để tạo các đối tượng.A Class is like an object constructor, or a "blueprint" for creating objects.