Các biến lớp tĩnh có thể có trong Python không?

Biến tĩnh và phương thức tĩnh là những khái niệm lập trình được sử dụng rộng rãi trong nhiều ngôn ngữ khác nhau như C++, PHP, Java, v.v. Các biến và phương thức này thuộc về lớp và các đối tượng. Trong phần này, chúng ta sẽ tìm hiểu cách chúng ta tạo các biến và phương thức tĩnh trong Python

Biến tĩnh Python

Khi chúng ta khai báo một biến bên trong một lớp, nhưng bên ngoài phương thức, nó được gọi là biến tĩnh hoặc biến lớp. Nó có thể được gọi trực tiếp từ một lớp nhưng không thông qua các thể hiện của một lớp. Tuy nhiên, các biến tĩnh khá khác biệt so với các thành viên khác và nó không xung đột với tên biến giống nhau trong chương trình Python

Hãy xem xét một chương trình để chứng minh việc sử dụng các biến tĩnh trong Python

tĩnh. py

đầu ra

Information technology
Information technology
John
Marcus
E101
E105
Information technology
Networking
Information technology
Networking
Database Administration

Trong ví dụ trên, dept là một biến lớp được định nghĩa bên ngoài các phương thức của lớp và bên trong định nghĩa lớp. Trong đó tên và id là biến thể hiện được định nghĩa bên trong một phương thức

Truy cập biến tĩnh bằng cùng một đối tượng lớp

Chúng ta có thể truy cập trực tiếp vào một biến tĩnh trong Python bằng cách sử dụng cùng một đối tượng lớp với toán tử dấu chấm

Hãy xem xét một chương trình truy cập biến tĩnh trong Python bằng đối tượng cùng lớp

tĩnhVar. py

đầu ra

Lucky No. 7
This is a good Car

Phương thức tĩnh

Python có một phương thức tĩnh thuộc về lớp. Nó giống như một biến tĩnh liên kết với lớp chứ không phải đối tượng của lớp. Một phương thức tĩnh có thể được gọi mà không cần tạo đối tượng cho lớp. Điều đó có nghĩa là chúng ta có thể gọi trực tiếp phương thức tĩnh với tham chiếu tên lớp. Hơn nữa, một phương thức tĩnh bị ràng buộc với một lớp;

Các tính năng của phương pháp tĩnh

Sau đây là các tính năng của phương thức tĩnh

  1. Một phương thức tĩnh trong Python liên quan đến lớp
  2. Nó có thể được gọi trực tiếp từ lớp bằng cách tham chiếu đến tên lớp
  3. Nó không thể truy cập các thuộc tính lớp trong chương trình Python
  4. Nó chỉ bị ràng buộc với lớp. Vì vậy, nó không thể sửa đổi trạng thái của đối tượng
  5. Nó cũng được sử dụng để phân chia các phương thức tiện ích cho lớp
  6. Nó chỉ có thể được định nghĩa bên trong một lớp chứ không thể định nghĩa cho các đối tượng của lớp
  7. Tất cả các đối tượng của lớp chỉ chia sẻ một bản sao của phương thức tĩnh

Có hai cách để định nghĩa một phương thức tĩnh trong Python

  1. Sử dụng phương thức staticmethod[]
  2. Sử dụng Trình trang trí @staticmethod

Sử dụng phương thức staticmethod[]

Phương thức tĩnh [] là một hàm tích hợp trong Python được sử dụng để trả về một hàm đã cho dưới dạng một phương thức tĩnh

cú pháp

Một phương thức tĩnh [] nhận một tham số duy nhất. Trường hợp tham số được truyền vào là một hàm cần được chuyển đổi thành một phương thức tĩnh

Hãy xem xét một chương trình để tạo một hàm dưới dạng một phương thức tĩnh bằng cách sử dụng staticmethod[] trong Python

Phương thức tĩnh. py

đầu ra

Total Marks in Maths 92
 Total Marks in Science 95
 Total Marks in English 95

Trong chương trình trên, chúng ta đã khai báo phương thức Math_num, phương thức Sci_num và phương thức Eng_num là phương thức tĩnh bên ngoài lớp bằng cách sử dụng hàm staticmethod[]. Sau đó, chúng ta có thể gọi trực tiếp phương thức tĩnh bằng tên lớp Marks

Sử dụng Trình trang trí @staticmethod

@staticmethod là một trình trang trí sẵn có xác định phương thức tĩnh bên trong lớp. Nó không nhận bất kỳ đối số nào dưới dạng tham chiếu đến một thể hiện của lớp hoặc một lớp gọi chính phương thức tĩnh đó

Định nghĩa biến và phương thức tĩnh là một khái niệm lập trình phổ biến và được sử dụng rộng rãi trong C++, Java, Php và nhiều ngôn ngữ lập trình khác để tạo các biến lớp và phương thức thuộc về lớp và được chia sẻ bởi tất cả các đối tượng của lớp

Trong Python, không có từ khóa đặc biệt nào để tạo các biến và phương thức tĩnh. Python tuân theo một cách tiếp cận khác nhưng đơn giản để xác định các biến và phương thức tĩnh mà chúng ta sẽ tìm hiểu trong hướng dẫn này

Biến lớp hoặc tĩnh trong Python

Biến lớp hoặc tĩnh là các biến thuộc về lớp chứ không phải đối tượng. Các biến lớp hoặc tĩnh được chia sẻ giữa các đối tượng của lớp. Tất cả các biến được gán giá trị trong khai báo lớp đều là biến lớp. Và các biến được gán giá trị bên trong các phương thức của lớp là các biến thể hiện

Hãy có một ví dụ để hiểu điều này

Trong chương trình trên, cat là một biến lớp vì nó được định nghĩa bên ngoài tất cả các phương thức của lớp và bên trong định nghĩa lớp và type là một biến thể hiện vì nó được định nghĩa bên trong một phương thức

Điều này được xác nhận bằng cách sử dụng câu lệnh print trong đó biến cat được tham chiếu bằng tên lớp

Lucky No. 7
This is a good Car
1 trong khi biến type được tham chiếu bằng các tham chiếu đối tượng khác nhau

Ví dụ trên cho thấy một kịch bản trong đó có các đối tượng hình dạng khác nhau, mỗi đối tượng thuộc cùng một danh mục là Hình học nhưng thuộc các loại khác nhau, vì vậy mỗi đối tượng của lớp có cùng một danh mục mà chúng ta đã tạo biến lớp và biến type là khác nhau

GHI CHÚ. Python cho phép cung cấp cùng một tên biến cho một lớp/biến tĩnh và một biến thể hiện. Nhưng chúng tôi khuyên bạn không nên cung cấp các biến cùng tên cho các biến này để tránh nhầm lẫn

Phương thức tĩnh trong Python

Giống như các biến tĩnh, các phương thức tĩnh là các phương thức được liên kết với lớp chứ không phải là một đối tượng của lớp và do đó được gọi bằng tên lớp chứ không phải các đối tượng của lớp

Vì các phương thức tĩnh được liên kết với lớp do đó chúng không thể thay đổi trạng thái của một đối tượng

Để gọi một phương thức tĩnh, chúng ta không cần bất kỳ đối tượng lớp nào, nó có thể được gọi trực tiếp bằng tên lớp

Trong python có hai cách định nghĩa một phương thức tĩnh

  1. Sử dụng
    Lucky No. 7
    This is a good Car
    
    4
  2. Sử dụng
    class Shape:
        
        @staticmethod
        def info[msg]:
            # show custom message
            print[msg]
            print["This class is used for representing different shapes."]
    
    Shape.info["Welcome to Shape class"]
    
    0

Xác định phương thức tĩnh bằng cách sử dụng
Lucky No. 7
This is a good Car
4

Hãy lấy một ví dụ để xem điều này được thực hiện như thế nào

class Shape:
    
    def info[msg]:
        # show custom message
        print[msg]
        print["This class is used for representing different shapes."]
        

# create info static method
Shape.info = staticmethod[Shape.info]

Shape.info["Welcome to Shape class"]

Chào mừng đến với lớp Hình dạng Lớp này được sử dụng để biểu diễn các hình dạng khác nhau

Trong chương trình trên, chúng tôi đã khai báo phương thức

class Shape:
    
    @staticmethod
    def info[msg]:
        # show custom message
        print[msg]
        print["This class is used for representing different shapes."]

Shape.info["Welcome to Shape class"]
2 là phương thức tĩnh bên ngoài lớp bằng cách sử dụng cách tiếp cận hàm
Lucky No. 7
This is a good Car
4 và sau đó chúng tôi có thể gọi trực tiếp phương thức
class Shape:
    
    @staticmethod
    def info[msg]:
        # show custom message
        print[msg]
        print["This class is used for representing different shapes."]

Shape.info["Welcome to Shape class"]
4 bằng cách sử dụng lớp
Lucky No. 7
This is a good Car
1

Một lớp tĩnh có thể có các biến không?

Như trong khái niệm dữ liệu tĩnh, tất cả các đối tượng của lớp trong các hàm tĩnh đều chia sẻ các biến . Điều này áp dụng cho tất cả các đối tượng của lớp. Hàm thành viên không tĩnh chỉ có thể được gọi sau khi khởi tạo lớp dưới dạng đối tượng. Đây không phải là trường hợp với các hàm thành viên tĩnh.

Có thể tạo biến tĩnh trong lớp Python Đúng Sai không?

Làm cách nào tôi có thể tạo các biến hoặc phương thức lớp [tĩnh] trong Python? . Việc không có từ khóa "tĩnh" có thể gây hiểu nhầm, nhưng bất kỳ đối tượng nào được khởi tạo bên trong lớp [chỉ một thụt lề bên trong lớp chứ không phải trong hàm tạo] đều là tĩnh.

Tĩnh có tồn tại trong Python không?

Python có một phương thức tĩnh thuộc về lớp . Nó giống như một biến tĩnh liên kết với lớp chứ không phải đối tượng của lớp. Một phương thức tĩnh có thể được gọi mà không cần tạo đối tượng cho lớp. Điều đó có nghĩa là chúng ta có thể gọi trực tiếp phương thức tĩnh với tham chiếu tên lớp.

Tôi có thể truy cập biến tĩnh trong phương thức cá thể Python không?

Một phương thức tĩnh không có quyền truy cập vào các biến của lớp và đối tượng vì nó không nhận được đối số ngầm đầu tiên như self và cls. Do đó, nó không thể sửa đổi trạng thái của đối tượng hoặc lớp. Phương thức lớp có thể được gọi bằng ClassName. method_name[] cũng như bằng cách sử dụng một đối tượng của lớp.

Chủ Đề