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
- Một phương thức tĩnh trong Python liên quan đến lớp
- 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
- Nó không thể truy cập các thuộc tính lớp trong chương trình Python
- 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
- Nó cũng được sử dụng để phân chia các phương thức tiện ích cho lớp
- 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
- 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
- Sử dụng phương thức staticmethod[]
- 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 Car1 trong khi biến
type
được tham chiếu bằng các tham chiếu đối tượng khác nhauVí 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
- Sử dụng
Lucky No. 7 This is a good Car
4 - Sử dụng
0class 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"]
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 Car4 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 Car1