Bạn có thể thay đổi biến tĩnh trong Python không?

Đị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,

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"]
9 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à
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 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

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"]
1 trong đó biến
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"]
9 được tham chiếu bằng tên lớp
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"]
3 trong khi biến
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 đượ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

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 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

Cũng 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
    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"]
    
    6
  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
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"]
6

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
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"]
6 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
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"]
3

Một biến là một địa chỉ bộ nhớ có thể thay đổi và khi địa chỉ bộ nhớ không thể thay đổi thì biến đó được gọi là hằng số. Biến là tên của vị trí bộ nhớ nơi dữ liệu được lưu trữ. Khi một biến được lưu trữ, không gian được phân bổ trong bộ nhớ. Nó định nghĩa một biến bằng cách sử dụng kết hợp các số, chữ cái và ký tự gạch dưới

Trong mô-đun này, chúng ta sẽ tìm hiểu tất cả về các biến trong Python. Sau đây là danh sách tất cả các chủ đề mà chúng ta sẽ đề cập trong mô-đun này

Tạo và khai báo biến Python

Python không có lệnh cụ thể chỉ để khai báo hoặc tạo một biến;

  • Tên biến không được bắt đầu bằng số. Nó phải bắt đầu bằng một bảng chữ cái hoặc ký tự gạch dưới
  • Tên biến luôn phân biệt chữ hoa chữ thường và có thể chứa ký tự chữ và số và ký tự gạch dưới
  • Các từ dành riêng không được dùng làm tên biến
  • Biến Python luôn được gán bằng cách sử dụng dấu bằng theo sau là giá trị của biến

Một biến trong Python được tạo ngay khi chúng ta gán giá trị cho nó. Python cũng không yêu cầu chỉ định kiểu dữ liệu của biến, không giống như các ngôn ngữ lập trình thông dụng khác

Gán giá trị cho biến Python

Không cần khai báo rõ ràng để dự trữ bộ nhớ. Phép gán được thực hiện bằng toán tử bằng [=].
Ví dụ.

a = 10
b = “Intellipaat”
print [a] # a is an int type variable because it has an int value in it
print [b] # b is a string type variable as it has a string value in it

Bài tập nhiều biến

Chúng ta có thể gán một giá trị cho nhiều biến như sau

a = b = c = 5

Ngoài ra ta có thể gán nhiều giá trị cho nhiều biến như sau

a, b, c = 2, 25, ‘abc’

Ghi chú. Python là một ngôn ngữ suy luận kiểu, tôi. e. , nó sẽ tự động phát hiện loại biến được gán

ví dụ 1

test=1
type[test]
Output:
int

ví dụ 2

________số 8

Xem video này về 'Biến trong Python'

Biến Python - Biến cố định, Toàn cầu & Biến tĩnh Biến Python - Biến cố định, Toàn cục & Biến tĩnh

Khai báo lại một biến trong Python

Sau khi chúng ta đã khai báo một biến, chúng ta có thể khai báo lại nó và gán giá trị mới cho nó. Trình thông dịch Python loại bỏ giá trị cũ và chỉ xem xét giá trị mới. Loại giá trị mới có thể khác với loại giá trị cũ.
Ví dụ.

a = 1
print [a]
a = ‘intellipaat’
print[a]


Output:
1
intellipaat

Hằng số trong Python

Hằng số là một loại biến chứa các giá trị, không thể thay đổi. Trên thực tế, chúng ta ít sử dụng hằng trong Python. Các hằng số thường được khai báo và gán trên một mô-đun/tệp khác.
Ví dụ.

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"]
0

Sau đó, chúng được nhập vào tệp chính

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"]
1

Ngoài ra, hãy xem Khóa học Python của chúng tôi và chuẩn bị để trở nên xuất sắc trong sự nghiệp của bạn với các câu hỏi phỏng vấn Python miễn phí do các chuyên gia tạo ra

Biến lớp Python

Một biến lớp trong Python được chia sẻ bởi tất cả các thể hiện đối tượng của lớp. Chúng được khai báo khi lớp được xây dựng và không có trong bất kỳ phương thức nào của lớp. Vì các Biến lớp này trong Python được sở hữu bởi chính lớp đó nên chúng được chia sẻ bởi tất cả các phiên bản của lớp đó.  

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"]
2

Ở đây, biến lang_name được gán giá trị “python”

Biến riêng Python

Trong Python, các biến đối tượng 'Riêng tư' không thể truy cập được ngoại trừ bên trong một đối tượng, thực tế không tồn tại. Nhưng hầu hết các lập trình viên Python sử dụng hai dấu gạch dưới ở đầu bất kỳ biến hoặc phương thức nào để đặt nó ở chế độ riêng tư

Biến __intellipaat sẽ được coi là biến không công khai hoặc riêng tư

Cách lấy các loại Biến trong Python

Bạn có thể lấy kiểu dữ liệu của một biến bằng hàm type[]

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"]
3

Phạm vi của các biến trong Python

Tất cả các biến trong python có thể không truy cập được ở tất cả các vị trí. Điều này sẽ phụ thuộc vào nơi các biến này được khai báo. Phạm vi của biến xác định vị trí trong chương trình mà biến có thể truy cập được. Phạm vi có thể là Cục bộ hoặc Toàn cầu. Vì vậy, hãy cùng tìm hiểu về Biến cục bộ và  Biến toàn cầu trong Python –

Biến cục bộ trong Python

Một biến được khai báo bên trong hàm python hoặc mô-đun chỉ có thể được sử dụng trong hàm cụ thể đó hoặc Mô-đun Python. Loại biến này được gọi là biến cục bộ. Trình thông dịch Python sẽ không nhận ra biến đó bên ngoài chức năng hoặc mô-đun cụ thể đó và sẽ đưa ra lỗi nếu biến đó không được khai báo bên ngoài chức năng đó.
Ví dụ.

a = b = c = 5
0

Ở đây, trong ví dụ này, khi biến f được khai báo lần thứ hai bên trong hàm có tên some_function, nó sẽ trở thành một biến cục bộ. Bây giờ, nếu chúng ta sử dụng biến đó bên trong hàm, sẽ không có vấn đề gì vì chúng ta có thể thấy rằng ở đầu ra của bản in thứ hai[f], nó in ra giá trị được gán cho f trong hàm, đó là Intellipaat

Trong khi đó, khi chúng ta cố gắng in giá trị của f bên ngoài hàm, nó sẽ in giá trị được gán cho nó bên ngoài hàm vì chúng ta có thể thấy rằng ở đầu ra của bản in đầu tiên và bản in thứ ba [f], nó in ra 100

Tìm hiểu các khái niệm Python từ đầu đến cuối thông qua Khóa học Python ở Hyderabad để đưa sự nghiệp của bạn lên một tầm cao mới

Biến toàn cục trong Python

Mặt khác, biến toàn cục trong Python là biến có thể được sử dụng toàn cầu ở bất kỳ đâu trong chương trình. Nó có thể được sử dụng trong bất kỳ chức năng hoặc mô-đun nào và thậm chí bên ngoài các chức năng mà không cần phải khai báo lại nó.
Ví dụ.

a = b = c = 5
1

Ở đây trong ví dụ này, chúng ta đã khai báo lại biến a trong hàm là biến toàn cục. Bây giờ, nếu chúng ta thay đổi giá trị của biến này bên trong hàm và sau đó in giá trị của biến này bên ngoài hàm, thì nó sẽ in giá trị đã thay đổi như chúng ta có thể thấy trong đầu ra của bản in thứ ba [a]. Vì biến a được khai báo toàn cục nên nó cũng có thể được sử dụng bên ngoài hàm

Xóa biến Python

Python cung cấp tính năng xóa biến khi không sử dụng để giải phóng dung lượng. Sử dụng lệnh del 'tên biến', chúng ta có thể xóa bất kỳ biến cụ thể nào.
Ví dụ.

a = b = c = 5
2

Nếu chúng ta chạy chương trình trên, trình thông dịch Python sẽ báo lỗi là ‘NameError. tên a không được xác định' trong bản in thứ hai [a], vì chúng ta đã xóa biến a bằng cách sử dụng lệnh del a

Bạn có muốn học Python từ các chuyên gia không?

Nối các biến Python

Nếu chúng ta muốn nối các biến Python thuộc các kiểu dữ liệu khác nhau, giả sử một biến số và một biến Chuỗi Python, thì chúng ta sẽ phải khai báo biến số là một chuỗi. Nếu biến số không được khai báo là biến chuỗi trước khi nối biến số với biến chuỗi, thì Python sẽ đưa ra TypeError.
Ví dụ.

a = b = c = 5
3

Ở đây, khối mã này sẽ đưa ra TypeError vì biến a là kiểu chuỗi và biến b là kiểu số. Để loại bỏ lỗi này, chúng ta sẽ phải khai báo biến số là biến chuỗi như trong ví dụ bên dưới

a = b = c = 5
4

Điều này đưa chúng ta đến phần cuối của mô-đun này trong Hướng dẫn Python

Bây giờ, nếu bạn muốn biết tại sao python là ngôn ngữ được ưa thích nhất cho khoa học dữ liệu, bạn có thể xem qua hướng dẫn Khoa học dữ liệu Python này

Biến tĩnh có thể được thay đổi?

Nói một cách đơn giản, nếu bạn sử dụng một từ khóa tĩnh với một biến hoặc một phương thức bên trong một lớp, thì với mọi phiên bản mà bạn tạo cho lớp đó, các thành viên tĩnh này sẽ không đổi và you can't change or modify them.

Biến tĩnh có thể được định nghĩa lại không?

Các biến tĩnh có thể được xác định bên trong hoặc bên ngoài hàm . Chúng là cục bộ của khối. Giá trị mặc định của các biến tĩnh là 0. Các biến tĩnh vẫn tồn tại cho đến khi thực hiện chương trình.

Bạn có thể ghi đè lên một phương thức tĩnh trong Python không?

Định nghĩa phương thức tĩnh không thay đổi ngay cả sau bất kỳ kế thừa nào, điều đó có nghĩa là nó có thể bị ghi đè , tương tự như các phương thức lớp khác.

Chúng ta có thể sửa đổi phương thức tĩnh không?

Phương thức tĩnh chỉ có quyền truy cập vào các biến tĩnh và phương thức tĩnh khác. Các phương thức tĩnh không thể truy cập hoặc thay đổi giá trị của các biến thể hiện hoặc tham chiếu this [vì không có đối tượng gọi cho chúng] và các phương thức tĩnh không thể gọi .

Chủ Đề