Chúng ta có thể sử dụng lớp làm biến trong Python không?

Sử dụng class_name dot variable_name để truy cập một biến lớp từ một phương thức lớp trong Python. Sử dụng thể hiện để truy cập các biến bên ngoài lớp

Ví dụ truy cập một biến lớp trong Python

Mã ví dụ đơn giản

Biến lớp là một biến được chia sẻ bởi tất cả các đối tượng của cùng một lớp

class Employee:
    branch = 'IT Branch'  # Class Variable

    def a_class_method[]:
        print[Employee.branch]


Employee.a_class_method[]

đầu ra

Cách truy cập các biến từ một lớp trong python

In giá trị biến

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]

đầu ra

Xin chào
Xin chào

Truy cập các biến lớp bên ngoài lớp trong Python

Đầu tiên, bạn cần tạo một thể hiện của lớp, sau đó bạn có thể sử dụng thể hiện đó để truy cập vào biến thể hiện và hàm của nó

class Example[object]:
    var_msg = "Welcome"
    var_num = 100


obj_example = Example[]

print[obj_example.var_msg]
print[obj_example.var_num]

đầu ra

Chào mừng
100

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về hướng dẫn biến Python này

Ghi chú. IDE. PyCharm 2021. 3. 3 [Phiên bản cộng đồng]

cửa sổ 10

Trăn 3. 10. 1

Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật

Khi bạn định nghĩa một lớp bằng từ khóa

print[type[HtmlDocument]] #

Code language: Python [python]
3, Python sẽ tạo một đối tượng có tên giống với tên của lớp. Ví dụ

class HtmlDocument: pass

Code language: Python [python]

Ví dụ này định nghĩa lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4 và đối tượng

print[type[HtmlDocument]] #

Code language: Python [python]
4. Đối tượng

print[type[HtmlDocument]] #

Code language: Python [python]
4 có thuộc tính

print[type[HtmlDocument]] #

Code language: Python [python]
7

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]

print[type[HtmlDocument]] #

Code language: Python [python]
8 có loại

print[type[HtmlDocument]] #

Code language: Python [python]
9

print[type[HtmlDocument]] #

Code language: Python [python]

Nó cũng là một thể hiện của lớp

print[type[HtmlDocument]] #

Code language: Python [python]
9

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
4

Các biến lớp được liên kết với lớp. Chúng được chia sẻ bởi tất cả các phiên bản của lớp đó

Ví dụ sau thêm các biến lớp

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
41 và
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
42 vào lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
8

Cả

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
41 và
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
42 đều là các biến lớp của lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4. Họ bị ràng buộc với lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4

Lấy giá trị của các biến lớp

Để lấy giá trị của các biến lớp, bạn sử dụng ký hiệu dấu chấm [

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
48]. Ví dụ

class Example[object]:
    var_msg = "Welcome"
    var_num = 100


obj_example = Example[]

print[obj_example.var_msg]
print[obj_example.var_num]
4

Nếu bạn truy cập một biến lớp không tồn tại, bạn sẽ nhận được một ngoại lệ

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
49. Ví dụ

class Example[object]:
    var_msg = "Welcome"
    var_num = 100


obj_example = Example[]

print[obj_example.var_msg]
print[obj_example.var_num]
6

Lỗi

class Example[object]:
    var_msg = "Welcome"
    var_num = 100


obj_example = Example[]

print[obj_example.var_msg]
print[obj_example.var_num]
7

Một cách khác để lấy giá trị của biến lớp là sử dụng hàm

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
80. Hàm
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
80 chấp nhận một đối tượng và một tên biến. Nó trả về giá trị của biến lớp. Ví dụ

print[type[HtmlDocument]] #

Code language: Python [python]
0

Nếu biến lớp không tồn tại, bạn cũng sẽ nhận được một ngoại lệ

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
49. Để tránh ngoại lệ, bạn có thể chỉ định giá trị mặc định nếu biến lớp không tồn tại như thế này

print[type[HtmlDocument]] #

Code language: Python [python]
2

Đặt giá trị cho các biến lớp

Để đặt giá trị cho biến lớp, bạn sử dụng ký hiệu dấu chấm

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
0

hoặc bạn có thể sử dụng chức năng tích hợp sẵn của

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
83

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
1

Vì Python là một ngôn ngữ động, bạn có thể thêm một biến lớp vào một lớp trong thời gian chạy sau khi bạn đã tạo nó. Ví dụ: phần sau thêm biến lớp

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
84 vào lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
2

Tương tự, bạn có thể sử dụng hàm

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
86

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
3

Xóa các biến lớp

Để xóa một biến lớp trong thời gian chạy, bạn sử dụng hàm

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
87

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
4

Hoặc bạn có thể sử dụng từ khóa

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
88

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
5

Lưu trữ biến lớp

Python lưu trữ các biến lớp trong thuộc tính

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89.
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89 là một proxy ánh xạ, là một từ điển. Ví dụ

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
6

đầu ra

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
7

Như được hiển thị rõ ràng trong đầu ra,

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89 có ba biến lớp.
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
41,
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
84 và
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
42 bên cạnh các biến lớp được xác định trước khác

Python không cho phép bạn thay đổi trực tiếp

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89. Ví dụ: sau đây sẽ dẫn đến lỗi

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
8

đầu ra

print[HtmlDocument.__name__] # HtmlDocument

Code language: Python [python]
9

Tuy nhiên, bạn có thể sử dụng hàm

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
86 hoặc ký hiệu dấu chấm để gián tiếp thay đổi thuộc tính
class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89

Ngoài ra, khóa của

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89 là các chuỗi sẽ giúp Python tăng tốc độ tra cứu biến

Mặc dù Python cho phép bạn truy cập các biến lớp thông qua từ điển

class Example[object]:
    msg = "Hello"


obj = Example[]

print[obj.msg]
print[Example.msg]
89, nhưng đó không phải là một cách thực hành tốt. Ngoài ra, nó sẽ không hoạt động trong một số trường hợp. Ví dụ

print[type[HtmlDocument]] #

Code language: Python [python]
0

Thuộc tính lớp có thể gọi

Thuộc tính lớp có thể là bất kỳ đối tượng nào, chẳng hạn như hàm

Khi bạn thêm một hàm vào một lớp, hàm đó sẽ trở thành một thuộc tính của lớp. Vì một chức năng có thể gọi được, nên thuộc tính lớp được gọi là thuộc tính lớp có thể gọi được. Ví dụ

print[type[HtmlDocument]] #

Code language: Python [python]
1

đầu ra

print[type[HtmlDocument]] #

Code language: Python [python]
2

Trong ví dụ này,

class Example[object]:
    var_msg = "Welcome"
    var_num = 100


obj_example = Example[]

print[obj_example.var_msg]
print[obj_example.var_num]
60 là một thuộc tính lớp của lớp

print[type[HtmlDocument]] #

Code language: Python [python]
4. Giá trị của nó là một hàm

Lớp có thể là một biến trong Python không?

Các biến lớp được định nghĩa trong cấu trúc lớp . Bởi vì chúng được sở hữu bởi chính lớp, các biến lớp được chia sẻ bởi tất cả các phiên bản của lớp. Do đó, chúng thường sẽ có cùng giá trị cho mọi phiên bản trừ khi bạn đang sử dụng biến lớp để khởi tạo một biến.

Một lớp có thể là một biến?

Trong lập trình hướng đối tượng, dựa trên lớp, biến lớp là một biến được định nghĩa trong một lớp mà một bản sao tồn tại, bất kể có bao nhiêu phiên bản của lớp đó. . Một biến lớp không phải là một biến thể hiện. . A class variable is not an instance variable.

Là lớp giống như biến?

Một lớp cung cấp bản thiết kế để tạo đối tượng. Biến thành viên là biến được liên kết với một đối tượng cụ thể . Nó có thể truy cập cho tất cả các phương pháp của nó. Có hai loại biến thành viên là biến lớp và biến thể hiện.

Chủ Đề