Hướng dẫn call method in python class - gọi phương thức trong lớp python

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    object[] is shorthand for object.__call__[]

    Bàn luận

    Python có một bộ các phương thức tích hợp và __call__ là một trong số đó.

    Instance Created
    Instance is called via special method
    
    0Method cho phép các lập trình viên Python viết các lớp trong đó các phiên bản hoạt động như các chức năng và có thể được gọi giống như một hàm. Khi thể hiện được gọi là một hàm; Nếu phương pháp này được xác định,
    Instance Created
    Instance is called via special method
    
    1 là tốc ký cho
    Instance Created
    Instance is called via special method
    
    2.

    Ví dụ 1:

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    Instance Created
    200
    
    3
    Instance Created
    200
    
    4

    Instance Created
    Instance is called via special method
    
    3
    Instance Created
    Instance is called via special method
    
    4

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    3
    Instance Created
    200
    
    4

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    @classmethod
       def fun[cls, arg1, arg2, ...]:
    8

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    200
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Instance Created
    Instance is called via special method
    

    @classmethod
       def fun[cls, arg1, arg2, ...]:
    5
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    7

    Đầu ra:

    Ví dụ 1:

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    Instance Created
    200
    
    3
    Instance Created
    200
    
    4

    Instance Created
    Instance is called via special method
    
    3
    Instance Created
    Instance is called via special method
    
    4

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    200
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Name :  mayank Age :  21
    4
    Name :  mayank Age :  21
    5
    Name :  mayank Age :  21
    6
    Name :  mayank Age :  21
    7
    Instance Created
    200
    
    4

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    200
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Instance Created
    200
    

    ClassMethod [] 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 .;classmethod[] is an inbuilt function in Python, which returns a class method for a given function.;

    Cú pháp: classMethod [hàm] classmethod[function]

    Tham số: Hàm này chấp nhận tên hàm là tham số.This function accepts the function name as a parameter.

    Loại trả về: Hàm này trả về phương thức lớp được chuyển đổi.This function returns the converted class method.

    Bạn cũng có thể sử dụng công cụ trang trí @ClassMethod cho định nghĩa ClassMethod.

    Syntax: 

    @classmethod
       def fun[cls, arg1, arg2, ...]:

    Where, 

    • Vui vẻ: Chức năng cần được chuyển đổi thành phương pháp lớp the function that needs to be converted into a class method
    • Trả về: Một phương thức lớp cho chức năng. a class method for function.

    Các phương thức classMethod [] được liên kết với một lớp chứ không phải là một đối tượng. Các phương thức lớp có thể được gọi bởi cả lớp và đối tượng. Các phương thức này có thể được gọi với một lớp hoặc với một đối tượng. & Nbsp;

    Phương pháp lớp so với phương pháp tĩnh

    • Một phương thức lớp lấy CLS làm tham số đầu tiên trong khi phương thức tĩnh không cần tham số cụ thể.
    • Phương thức lớp có thể truy cập hoặc sửa đổi trạng thái lớp trong khi phương thức tĩnh có thể truy cập hoặc sửa đổi nó.
    • Nói chung, các phương pháp tĩnh không biết gì về trạng thái lớp. Chúng là các phương thức loại tiện ích lấy một số tham số và hoạt động dựa trên các tham số đó. Mặt khác, các phương thức lớp phải có lớp dưới dạng tham số.
    • Chúng tôi sử dụng công cụ trang trí @ClassMethod trong Python để tạo phương thức lớp và chúng tôi sử dụng công cụ trang trí @staticmethod để tạo phương thức tĩnh trong Python.

    Ví dụ về ClassMethod trong Python

    Ví dụ 1: Tạo một lớp đơn giản

    Trong ví dụ này, chúng ta sẽ thấy cách tạo ClassMethod, vì điều này, chúng tôi đã tạo một lớp có tên Geek với khóa học biến thành viên và tạo một giao dịch mua chức năng in đối tượng.

    Bây giờ chúng tôi đã chuyển phương thức Geek.purchase thành ClassMethod chuyển đổi các phương thức thành phương thức lớp và sau đó chúng tôi gọi mua chức năng lớp mà không tạo đối tượng chức năng.

    Python3

    Instance Created
    Instance is called via special method
    
    3
    class C[object]:
        @classmethod
        def fun[cls, arg1, arg2, ...]:
           ....
    0

    Instance Created
    Instance is called via special method
    
    5
    class C[object]:
        @classmethod
        def fun[cls, arg1, arg2, ...]:
           ....
    2
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    class C[object]:
        @classmethod
        def fun[cls, arg1, arg2, ...]:
           ....
    4

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    class C[object]:
        @classmethod
        def fun[cls, arg1, arg2, ...]:
           ....
    7

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    21
    25
    True
    1
    21
    25
    True
    2

    21
    25
    True
    3
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    21
    25
    True
    5
    21
    25
    True
    6

    21
    25
    True
    7

    Output:

    Puchase course :  DSA

    Ví dụ 2: Tạo phương thức lớp bằng classMethod []Create class method using classmethod[]

    Python3

    Instance Created
    Instance is called via special method
    
    3
    21
    25
    True
    9

    Instance Created
    Instance is called via special method
    
    5__call__1
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6 __call__3

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6 __call__6

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    Instance Created
    Instance is called via special method
    
    00
    Instance Created
    Instance is called via special method
    
    01

    Instance Created
    Instance is called via special method
    
    02
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    21
    25
    True
    5
    Instance Created
    Instance is called via special method
    
    05

    Instance Created
    Instance is called via special method
    
    06

    Output:

    The name is :  Geeksforgeeks

    Ví dụ 3: Phương pháp nhà máy sử dụng phương pháp lớp

    Việc sử dụng hàm classMethod [] được sử dụng trong các mẫu thiết kế nhà máy nơi chúng tôi muốn gọi nhiều chức năng với tên lớp chứ không phải là một đối tượng.

    Python3

    Instance Created
    Instance is called via special method
    
    07
    Instance Created
    Instance is called via special method
    
    08
    Instance Created
    Instance is called via special method
    
    09
    Instance Created
    Instance is called via special method
    
    10

    Instance Created
    Instance is called via special method
    
    3
    Instance Created
    Instance is called via special method
    
    12

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    17

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    20
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    22

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    25
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    27

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    29

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    32
    Instance Created
    Instance is called via special method
    
    33
    Instance Created
    Instance is called via special method
    
    34

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    36
    Instance Created
    Instance is called via special method
    
    33
    Instance Created
    Instance is called via special method
    
    38
    Instance Created
    Instance is called via special method
    
    39
    Instance Created
    Instance is called via special method
    
    40

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    43
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Instance Created
    200
    
    0
    Instance Created
    200
    
    1
    Instance Created
    200
    
    2
    Instance Created
    Instance is called via special method
    
    49
    Name :  mayank Age :  21
    6
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    52
    Instance Created
    Instance is called via special method
    
    53
    Name :  mayank Age :  21
    6
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    56

    Instance Created
    Instance is called via special method
    
    57
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    59
    Instance Created
    Instance is called via special method
    
    60
    Name :  mayank Age :  21
    6
    Instance Created
    Instance is called via special method
    
    62
    Instance Created
    200
    
    4

    Instance Created
    Instance is called via special method
    
    64

    Output:

    Name :  mayank Age :  21

    Bộ trang trí @ClassMethod

    Bộ trang trí @ClassMethod là một bộ trang trí chức năng tích hợp, là một biểu thức được đánh giá sau khi chức năng của bạn được xác định. Kết quả của việc đánh giá đó bóng tối định nghĩa chức năng của bạn. & Nbsp;

    Một phương thức lớp nhận lớp là đối số đầu tiên ngầm, giống như một phương thức thể hiện nhận được thể hiện.

    Syntax:

    class C[object]:
        @classmethod
        def fun[cls, arg1, arg2, ...]:
           ....

    Where,

    • Vui vẻ: Chức năng cần được chuyển đổi thành phương pháp lớp the function that needs to be converted into a class method
    • Trả về: Một phương thức lớp cho chức năng. a class method for function.

    Note:

    • Các phương thức classMethod [] được liên kết với một lớp chứ không phải là một đối tượng. Các phương thức lớp có thể được gọi bởi cả lớp và đối tượng. Các phương thức này có thể được gọi với một lớp hoặc với một đối tượng. & Nbsp;
    • Phương pháp lớp so với phương pháp tĩnh
    • Một phương thức lớp lấy CLS làm tham số đầu tiên trong khi phương thức tĩnh không cần tham số cụ thể.

    Phương thức lớp có thể truy cập hoặc sửa đổi trạng thái lớp trong khi phương thức tĩnh có thể truy cập hoặc sửa đổi nó.

    Nói chung, các phương pháp tĩnh không biết gì về trạng thái lớp. Chúng là các phương thức loại tiện ích lấy một số tham số và hoạt động dựa trên các tham số đó. Mặt khác, các phương thức lớp phải có lớp dưới dạng tham số.

    Instance Created
    Instance is called via special method
    
    07
    Instance Created
    Instance is called via special method
    
    08
    Instance Created
    Instance is called via special method
    
    09
    Instance Created
    Instance is called via special method
    
    10

    Instance Created
    Instance is called via special method
    
    3
    Instance Created
    Instance is called via special method
    
    12

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    7
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    17

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    20
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    22

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    25
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    27

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    29

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    32
    Instance Created
    Instance is called via special method
    
    33
    Instance Created
    Instance is called via special method
    
    34

    Instance Created
    200
    
    0
    Instance Created
    Instance is called via special method
    
    36
    Instance Created
    Instance is called via special method
    
    33
    Instance Created
    Instance is called via special method
    
    38
    Instance Created
    Instance is called via special method
    
    39
    Instance Created
    Instance is called via special method
    
    40

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    200
    
    00

    Instance Created
    Instance is called via special method
    
    5
    Instance Created
    Instance is called via special method
    
    6
    Instance Created
    Instance is called via special method
    
    43
    Instance Created
    Instance is called via special method
    
    8
    Instance Created
    Instance is called via special method
    
    9

    Instance Created
    Instance is called via special method
    
    57
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    Instance is called via special method
    
    59
    Instance Created
    Instance is called via special method
    
    60
    Name :  mayank Age :  21
    6
    Instance Created
    Instance is called via special method
    
    62
    Instance Created
    200
    
    4

    Bộ trang trí @ClassMethod

    Instance Created
    200
    
    15
    @classmethod
       def fun[cls, arg1, arg2, ...]:
    6
    Instance Created
    200
    
    17
    Instance Created
    Instance is called via special method
    
    60
    Name :  mayank Age :  21
    6
    Instance Created
    200
    
    20
    Instance Created
    200
    
    4

    Instance Created
    200
    
    1
    Instance Created
    200
    
    23

    Instance Created
    200
    
    1
    Instance Created
    200
    
    25

    Instance Created
    200
    
    1
    Instance Created
    200
    
    27
    Instance Created
    200
    
    28
    Instance Created
    200
    
    29

    Output:

    21
    25
    True

    Phương thức cuộc gọi trong Python là gì?

    Gọi một phương thức của đối tượng Python OBJ, trong đó tên của phương thức được đặt dưới dạng đối tượng chuỗi Python trong tên. Nó được gọi với một số lượng khác nhau của các đối số PyObject*. Các đối số được cung cấp dưới dạng một số lượng tham số thay đổi theo sau là NULL.a method of the Python object obj, where the name of the method is given as a Python string object in name. It is called with a variable number of PyObject* arguments. The arguments are provided as a variable number of parameters followed by NULL.

    __ Gọi __ trong lớp 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 hàm và có thể được gọi giống như một hàm.Khi thể hiện được gọi là một hàm;Nếu phương pháp này được xác định, x [arg1, arg2, ...] là tốc ký cho x.__call __ [arg1, arg2, ...].enables Python programmers to write classes where the instances behave like functions and can be called like a function. When the instance is called as a function; if this method is defined, x[arg1, arg2, ...] is a shorthand for x. __call__[arg1, arg2, ...] .

    Cuộc gọi phương thức lớp là gì?

    Phương thức lớp là một phương thức có thể được gọi mà không cần tham chiếu đến bất kỳ thể hiện đối tượng nào;Chúng được gọi là phương pháp tĩnh trong các ngôn ngữ khác.Phương thức thuật ngữ thường đề cập đến một phương thức thể hiện.a method that can be invoked without reference to any object instance; these are called static methods in other languages. The term method usually refers to an instance method.

    Làm cách nào để gọi một phương thức trong Python trong cùng một lớp?

    Cách gọi một phương thức thể hiện trong cùng một lớp trong Python..
    lớp C:.
    def f [tự]:.
    print["abc"].
    def g [tự]:.
    bản thân.f [].
    print ["def"] hàm g [] gọi hàm f [].
    class_instance = c [].
    class_instance.f [].

    Bài Viết Liên Quan

    Chủ Đề