Thuộc tính lớp trong python là gì?

Là một ngôn ngữ hướng đối tượng, Python cung cấp hai phạm vi cho các thuộc tính. thuộc tính lớp và thuộc tính thể hiện. Hãy tưởng tượng một Lớp giống như một bản thiết kế mà từ đó các đối tượng khác nhau được tạo ra

Mỗi đối tượng là một thể hiện của một lớp. Chúng ta có thể lấy lớp “Chó” làm ví dụ để giải thích điều này

Chó có thể có dữ liệu như màu sắc, tên hoặc giống và các hành vi như. chạy, sủa, ngồi, ăn, v.v. Dữ liệu trong một lớp được gọi là thuộc tính và hành vi được gọi là phương thức

Ví dụ về một chú chó tên là “Nemo”

Lớp -> Con chó

Thuộc tính->      Tên. Nemo

Màu sắc. Màu đen

Giống. chó tha mồi vàng

Phương pháp->        Vỏ cây

Chạy

Ăn

Ngồi

Vì vậy, đối tượng của lớp “Chó” của chúng ta được đặt tên là Nemo, màu của nó là Đen và đó là Golden Retriever. Anh ta có thể sủa, chạy, ăn và ngồi

Thuộc tính sơ thẩm

Một thuộc tính thể hiện là một biến Python chỉ thuộc về một đối tượng. Nó chỉ có thể truy cập được trong phạm vi của đối tượng và nó được định nghĩa bên trong hàm tạo của một lớp. Ví dụ: __init__[bản thân,. ]

Thuộc tính lớp

Thuộc tính lớp là một Biến Python thuộc về một lớp chứ không phải một đối tượng cụ thể. Điều này được chia sẻ giữa tất cả các đối tượng khác của cùng một lớp và được định nghĩa bên ngoài hàm tạo __init__[self,…], của lớp

Sự khác nhau giữa thuộc tính Class và Instance

Sự khác biệt là các thuộc tính lớp được chia sẻ bởi tất cả các phiên bản. Khi bạn thay đổi giá trị của thuộc tính lớp, nó sẽ ảnh hưởng đến tất cả các phiên bản có cùng giá trị chính xác. Mặt khác, thuộc tính của một thể hiện là duy nhất cho thể hiện đó

__dict__ là gì?

__dict__ là một từ điển hoặc đối tượng ánh xạ được sử dụng để lưu trữ các thuộc tính của đối tượng

Nhưng Python xử lý đối tượng và thuộc tính lớp bằng cách sử dụng __dict__ như thế nào?

Tạo các lớp và sơ thẩm Pythonic và không phải Pythonic

Một cách phi Pythonic sẽ như thế này

class Square:

   def __init__[self, size=0]:    

       if not isinstance[size, int]:    

           raise TypeError["size must be an integer"] 

    

       if size < 0:          

           raise ValueError["size must be >= 0"]    

 

       self.__size = size * size 

  def area[self]:   

      return self.__sizet__width[]


Điều bất lợi xảy ra khi chúng ta cần sửa đổi mã. Cách thực hiện Pythonic là sử dụng các phương thức thuộc tính getter và setter

class Square:

   def __init__[self, size=0]:       

       self.size = size

   @property   

      def size[self]:   

          return self.__size    

   @size.setter 

      def size[self, value]:      

          if not isinstance[value, int]:       

              raise TypeError["size must be an integer"]   

          if value < 0:         

              raise ValueError["size must be >= 0"]  

          self.__size = value   

   def area[self]:     

       return self.__size * self.__size


Ưu điểm của việc sử dụng thuộc tính cho phép chúng tôi đính kèm mã vào "bản thân. size" và bất kỳ mã nào được gán giá trị của size sẽ được gọi với size trong def size

Các thuộc tính của lớp thuộc về chính lớp đó, chúng sẽ được chia sẻ bởi tất cả các thể hiện. Các thuộc tính như vậy được định nghĩa trong các phần cơ thể của lớp thường ở trên cùng, để dễ đọc




       return self.__size * self.__size
3

       return self.__size * self.__size
4
       return self.__size * self.__size
5

       return self.__size * self.__size
6
       return self.__size * self.__size
7____38
       return self.__size * self.__size
9    
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

       return self.__size * self.__size
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
2
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
3____44
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
5

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
7____48
       return self.__size * self.__size
8
       return self.__size * self.__size
30

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

       return self.__size * self.__size
32

       return self.__size * self.__size
33
       return self.__size * self.__size
8
       return self.__size * self.__size
35

       return self.__size * self.__size
36

       return self.__size * self.__size
37
       return self.__size * self.__size
38

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

       return self.__size * self.__size
40

       return self.__size * self.__size
41

       return self.__size * self.__size
42
       return self.__size * self.__size
8
       return self.__size * self.__size
35

       return self.__size * self.__size
45

       return self.__size * self.__size
37
       return self.__size * self.__size
47

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

       return self.__size * self.__size
37
       return self.__size * self.__size
50

đầu ra

      return self.__sizet__width[]
5

Thuộc tính sơ thẩm

Không giống như các thuộc tính lớp, các thuộc tính thể hiện không được chia sẻ bởi các đối tượng. Mỗi đối tượng có bản sao riêng của thuộc tính thể hiện [Trong trường hợp thuộc tính lớp, tất cả đối tượng tham chiếu đến một bản sao]

Để liệt kê các thuộc tính của một thể hiện/đối tượng, chúng ta có hai hàm. -
1. vars[]– Hàm này hiển thị thuộc tính của một thể hiện dưới dạng một từ điển.
2. dir[]– Hàm này hiển thị nhiều thuộc tính hơn hàm vars, vì nó không giới hạn đối với phiên bản. Nó cũng hiển thị các thuộc tính của lớp. Nó cũng hiển thị các thuộc tính của các lớp tổ tiên của nó.




       return self.__size * self.__size
51

       return self.__size * self.__size
52

       return self.__size * self.__size
4
       return self.__size * self.__size
54

       return self.__size * self.__size
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
2
       return self.__size * self.__size
57______44
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
5

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
4____362
       return self.__size * self.__size
8
       return self.__size * self.__size
64

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
4
       return self.__size * self.__size
67
       return self.__size * self.__size
8
       return self.__size * self.__size
69

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

       return self.__size * self.__size
6
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
2
       return self.__size * self.__size
73
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
4
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
5

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
6
       return self.__size * self.__size
37____378
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
4
       return self.__size * self.__size
80

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
6
       return self.__size * self.__size
37____378
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
4
       return self.__size * self.__size
85

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
0

________ 387 ________ 38 ________ 389

       return self.__size * self.__size
37
       return self.__size * self.__size
78
       return self.__size * self.__size
92
       return self.__size * self.__size
93
       return self.__size * self.__size
94
       return self.__size * self.__size
95

       return self.__size * self.__size
37
       return self.__size * self.__size
78
       return self.__size * self.__size
98
       return self.__size * self.__size
95

đầu ra

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']

Bài viết này được đóng góp bởi Harsh Valecha. Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng đóng góp. chuyên viên máy tính. org hoặc gửi bài viết của bạn tới donate@geeksforgeeks. tổ chức. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp các Geeks khác

Vui lòng viết bình luận nếu bạn thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề thảo luận ở trên

Thuộc tính lớp là gì?

Định nghĩa và cách sử dụng . Thuộc tính lớp chủ yếu được sử dụng để trỏ đến một lớp trong biểu định kiểu. Tuy nhiên, nó cũng có thể được sử dụng bởi JavaScript [thông qua HTML DOM] để thay đổi các phần tử HTML với một lớp được chỉ định. specifies one or more classnames for an element. The class attribute is mostly used to point to a class in a style sheet. However, it can also be used by a JavaScript [via the HTML DOM] to make changes to HTML elements with a specified class.

Thuộc tính lớp với ví dụ trong Python là gì?

Thuộc tính lớp và trường hợp trong Python . Giá trị của các thuộc tính lớp vẫn giữ nguyên cho mọi đối tượng mới. class variables that are inherited by every object of a class. The value of class attributes remain the same for every new object.

Thuộc tính lớp và thuộc tính thể hiện Python là gì?

Thuộc tính lớp là các biến được định nghĩa trực tiếp trong lớp được chia sẻ bởi tất cả các đối tượng của lớp. Thuộc tính thể hiện là thuộc tính hoặc thuộc tính gắn liền với một thể hiện của một lớp

Chủ Đề