Hướng dẫn what is variable and attribute in python? - biến và thuộc tính trong python là gì?

Tôi đã có một cuộc phỏng vấn lập trình gần đây, một màn hình điện thoại trong đó chúng tôi đã sử dụng một trình soạn thảo văn bản hợp tác.

Tôi đã được yêu cầu thực hiện một API nhất định và chọn làm như vậy trong Python. Tóm tắt về tuyên bố vấn đề, hãy để nói rằng tôi cần một lớp có các trường hợp lưu trữ một số

class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
3 và một số
class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
4.

Tôi hít một hơi thật sâu và bắt đầu gõ. Sau một vài dòng, tôi đã có một cái gì đó như thế này:

class Service[object]:
    data = []

    def __init__[self, other_data]:
        self.other_data = other_data
    ...

Người phỏng vấn của tôi đã ngăn tôi lại:

  • Người phỏng vấn: Dòng đó:
    class MyClass[object]:
        class_var = 1
    
        def __init__[self, i_var]:
            self.i_var = i_var
    
    5. Tôi không nghĩ rằng, Python hợp lệ?
  • Tôi: Tôi đã rất chắc chắn. Nó chỉ đặt một giá trị mặc định cho thuộc tính thể hiện.
  • Người phỏng vấn: Khi nào mã đó được thực thi?
  • Tôi: Tôi không thực sự chắc chắn. Tôi chỉ cần sửa nó để tránh nhầm lẫn.

Để tham khảo và để cung cấp cho bạn một ý tưởng về những gì tôi sẽ làm, ở đây, cách tôi sửa đổi mã:

class Service[object]:

    def __init__[self, other_data]:
        self.data = []
        self.other_data = other_data
    ...

Hóa ra, cả hai chúng tôi đều sai. Câu trả lời thực sự nằm trong việc hiểu sự khác biệt giữa các thuộc tính lớp Python và các thuộc tính thể hiện Python.

Lưu ý: Nếu bạn có một chuyên gia xử lý các thuộc tính của lớp, bạn có thể bỏ qua trước để sử dụng các trường hợp.

Thuộc tính lớp Python

Người phỏng vấn của tôi đã sai ở chỗ mã trên có hiệu lực về mặt cú pháp.

Tôi cũng đã sai ở chỗ nó không phải là một giá trị mặc định của người dùng cho thuộc tính thể hiện. Thay vào đó, nó xác định

class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
3 là thuộc tính lớp có giá trị
class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
7.

Theo kinh nghiệm của tôi, các thuộc tính lớp Python là một chủ đề mà nhiều người biết điều gì đó, nhưng ít ai hiểu hoàn toàn.

Biến lớp Python so với biến thể hiện: Điều gì khác biệt?

Một thuộc tính lớp Python là một thuộc tính của lớp [tròn, tôi biết], thay vì một thuộc tính của một thể hiện của một lớp.

Hãy để sử dụng một ví dụ về lớp Python để minh họa sự khác biệt. Ở đây,

class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
8 là thuộc tính lớp và
class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
9 là một thuộc tính thể hiện:

class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var

Lưu ý rằng tất cả các trường hợp của lớp đều có quyền truy cập vào

class MyClass[object]:
    class_var = 1

    def __init__[self, i_var]:
        self.i_var = i_var
8 và nó cũng có thể được truy cập dưới dạng thuộc tính của chính lớp:

foo = MyClass[2]
bar = MyClass[3]

foo.class_var, foo.i_var
## 1, 2
bar.class_var, bar.i_var
## 1, 3
MyClass.class_var ## >> >>> n = 300.a symbolic name that is a reference or pointer to an object. Once an object is assigned to a variable, you can refer to the object by that name. But the data itself is still contained within the object. For example: >>> >>> n = 300.

Sự khác biệt giữa một biến và một thuộc tính là gì?

Trong các nghiên cứu thống kê, các biến là các giá trị hoặc tập hợp có thể định lượng được thay đổi theo thời gian. Biểu diễn là đặc điểm của một thứ liên quan đến chất lượng không thể định lượng.variables are the quantifiable values or sets that vary over time. Attributes are the characteristic of a thing related to quality that is not quantifiable.

Các thuộc tính trong các ví dụ Python là gì?

Các thuộc tính lớp và thể hiện trong Python để đưa ra một định nghĩa cơ bản về cả hai thuật ngữ, các thuộc tính lớp là các biến lớp được kế thừa bởi mọi đối tượng của một lớp.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.

Bài Viết Liên Quan

Chủ Đề