Gọi một lớp trong một lớp python

Nếu các lớp của bạn định nghĩa một phương thức __init__, hãy đảm bảo cung cấp tất cả các đối số cần thiết khi khởi tạo chúng

Các phương thức trong ví dụ được truy cập trên các thể hiện của các lớp

Nếu bạn đã định nghĩa một phương thức tĩnh, bạn không cần phải khởi tạo lớp để gọi phương thức từ một lớp khác

Chúng tôi đã sử dụng trình trang trí @staticmethod để xác định một phương thức tĩnh trong lớp

Phương thức tĩnh không nhận đối số ngầm định đầu tiên [self] và có thể được gọi trên lớp hoặc một thể hiện của lớp

Lưu ý rằng chúng ta không phải tạo một thể hiện của lớp A để có thể gọi method_a

Bạn cũng có thể gọi method_a và lưu trữ kết quả trong một biến lớp trong lớp khác

class A:
    def method_a[self, a, b]:
        return a + b


class B:
    result = A[].method_a[15, 20]


print[B.result]

Biến lớp

class A:
    def __init__[self, name, age]:
        self.name = name
        self.age = age

    def method_a[self, a, b]:
        return a + b


class B:
    def __init__[self, name, age]:
        self.name = name
        self.age = age

    def method_b[self, a, b]:
        return A[self.name, self.age].method_a[a, b]


b1 = B['bobby', 30]

print[b1.method_b[10, 15]]
3 được chia sẻ bởi tất cả các phiên bản của lớp B

Dưới đây là một ví dụ về khởi tạo các lớp cũng định nghĩa một phương thức __init__[]

class A:
    def __init__[self, name, age]:
        self.name = name
        self.age = age

    def method_a[self, a, b]:
        return a + b


class B:
    def __init__[self, name, age]:
        self.name = name
        self.age = age

    def method_b[self, a, b]:
        return A[self.name, self.age].method_a[a, b]


b1 = B['bobby', 30]

print[b1.method_b[10, 15]]

Chúng tôi đã phải vượt qua các đối số cần thiết khi khởi tạo lớp A trong lớp B

Bạn cũng có thể truyền một thể hiện của lớp A làm đối số khi khởi tạo lớp B

Lớp B lấy một thể hiện của lớp A làm đối số trong phương thức __init__[] của nó

Bây giờ chúng tôi có thể truy cập phiên bản trong method_b để gọi method_a

Cách gọi một Hàm trong một Lớp bằng Python

Để gọi một chức năng trong một lớp

  1. Xác định self làm đối số đầu tiên mà phương thức nhận
  2. Tạo một thể hiện của lớp
  3. Gọi hàm bằng cách sử dụng self, e. g. A7

Lớp A8 có 3 phương thức

  • __init__[] - được sử dụng để tạo một thể hiện của lớp
  • B0 - gọi phương thức B1 và in một thông báo
  • B1 cập nhật thuộc tính B3 trên phiên bản hiện tại

Khi một lớp định nghĩa phương thức __init__[], phương thức này được gọi khi một thể hiện được tạo

Phương thức __init__[] không được phép trả lại bất cứ thứ gì

Nếu bạn truyền đối số khi khởi tạo một lớp, thì đối số sẽ được chuyển cho phương thức __init__[]

Các biến thể hiện B7 và B3 trong ví dụ trên là duy nhất cho mỗi thể hiện

Lưu ý rằng đối số đầu tiên mà phương thức __init__[] lấy là self

Bạn có thể đặt tên cho đối số này là bất cứ thứ gì vì tên self không có ý nghĩa đặc biệt trong Python

self đại diện cho một thể hiện của lớp, vì vậy khi chúng ta gán một biến là method_a3, chúng ta đang khai báo một biến thể hiện - một biến duy nhất cho mỗi thể hiện

Bạn có thể sử dụng đối tượng self để gọi một hàm trong lớp theo cách tương tự

Dòng A7 trong phương thức method_a6 gọi phương thức B1 trong thể hiện

Điều quan trọng cần lưu ý là chúng ta phải tạo một thể hiện của lớp để gọi phương thức B0, phương thức này sẽ gọi phương thức B1

Tuy nhiên, cũng có những phương thức tĩnh có thể được gọi trên lớp chứ không chỉ trên một thể hiện của lớp

Các biến thể hiện B7 và B3 trong ví dụ là duy nhất cho từng thể hiện, trái ngược với biến lớp method_b2 được chia sẻ bởi tất cả các thể hiện

Chúng tôi đã sử dụng trình trang trí @staticmethod để xác định một phương thức tĩnh trong lớp

Phương thức tĩnh không nhận đối số ngầm định đầu tiên [self] và có thể được gọi trên lớp hoặc một thể hiện của lớp

Tuy nhiên, các phương thức tĩnh chủ yếu được sử dụng cho mục đích tổ chức nên bạn sẽ không phải sử dụng chúng thường xuyên

Các phương thức thông thường được truyền một đối tượng self cung cấp cho chúng ta một tham chiếu đến thể hiện

Các biến thể hiện B7 và B3 là duy nhất cho mỗi thể hiện, nhưng các thể hiện này chia sẻ cùng một biến lớp method_b2

Nếu bạn phải truy cập một thuộc tính thể hiện, e. g. B7 hoặc B3, bạn phải xác định một phương thức thông thường [không phải phương thức tĩnh] và lấy self làm đối số đầu tiên

Sau đó, bạn có thể truy cập các thuộc tính là __init__[]2 hoặc gọi các phương thức là __init__[]3 từ bên trong lớp

Khi chúng ta gọi một phương thức hoặc truy cập một thuộc tính trên một thể hiện của lớp, e. g. __init__[]4, bạn có thể tưởng tượng rằng phương thức __init__[]5 hoàn toàn được thông qua thể hiện __init__[]6 [self] làm đối số

Điều này cho phép chúng ta truy cập các thuộc tính khác hoặc gọi các phương thức khác bằng cách sử dụng đối tượng self trong phạm vi __init__[]5

__ gọi __ trong lớp Python là gì?

__call__ trong Python . Khi thể hiện được gọi là một hàm; . ] là viết tắt của x. 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.

Làm cách nào để tạo một thể hiện của một lớp trong một lớp khác trong Python?

Để tạo các thể hiện của một lớp, bạn gọi lớp đó bằng tên lớp và truyền vào bất kỳ đối số nào mà phương thức __init__ của nó chấp nhận .

Chủ Đề