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

Trong hướng dẫn này, chúng ta sẽ hiểu sự khác biệt giữa thuộc tính và thuộc tính trong Python. Mọi thứ trong Python đều là đối tượng và mỗi lớp có thuộc tính, phương thức hoặc hàm. Khi làm việc với ngôn ngữ lập trình hướng đối tượng, chúng ta bắt gặp thuật ngữ - Attributes and Properties. Về mặt tiếng Anh, các thuộc tính và thuộc tính có thể được sử dụng tương tự nhau, nhưng về mặt lập trình, cả hai đều khác nhau

Vì vậy, chúng tôi sẽ thảo luận về một số khác biệt quan trọng giữa chúng. Hãy chuyển sang phần giới thiệu về các thuộc tính

Các thuộc tính được xác định bởi các biến dữ liệu như tên, tuổi, chiều cao, v.v. Trong Python, có hai loại thuộc tính -

  • Thuộc tính lớp
  • Thuộc tính sơ thẩm

Thuộc tính lớp

Thuộc tính lớp là các thuộc tính được tạo bên trong định nghĩa lớp và thuộc về lớp đó. Các thuộc tính 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. Hãy hiểu ví dụ sau -

Thí dụ -

đầu ra

Giải trình -

Trong đoạn mã trên, chúng tôi đã tạo một lớp có tên là Sinh viên và được gán các thuộc tính lớp để đếm. Chúng ta có thể truy cập nó bằng cách sử dụng thể hiện của lớp hoặc chính tên lớp

Thuộc tính sơ thẩm

Một đối tượng không là gì ngoài một thể hiện của lớp trong Python. Các thuộc tính của phiên bản là duy nhất cho từng phiên bản và mọi đối tượng/phiên bản đều chứa các thuộc tính của nó và có thể thay đổi mà không cần sửa đổi các phiên bản khác. Hãy hiểu ví dụ sau

Thí dụ -

đầu ra

Bây giờ chúng ta có một ý tưởng ngắn gọn về các thuộc tính của ý tưởng;

Thuộc tính trong Python

Thuộc tính là các thuộc tính duy nhất chứa các phương thức getter, setter và deleter như các phương thức __get__, __set__ và __delete__. Python cung cấp trình trang trí @property, có thể được sử dụng để xác định các thuộc tính trong mã Python. Trình trang trí thay đổi hành vi của hàm được bao bọc mà không thay đổi định nghĩa thực tế của nó

Hãy hiểu ví dụ sau -

Thí dụ -

đầu ra

Getting message
Welcome to JavaTpoint
Setting message to Happy Learning!
Deleting message

Giải trình -

Trong đoạn mã trên, chúng tôi đã tạo một lớp sẽ hiển thị thông báo. Đầu tiên, chúng tôi đã khởi tạo thuộc tính thông báo và xác định thuộc tính bằng trình trang trí @property. Sau đó, chúng tôi đã giải thích phương thức setter sẽ đặt phương thức khi chúng tôi sửa đổi thông báo. Sau đó, chúng tôi đã mô tả phương pháp xóa. Đây là những thuộc tính duy nhất của trình trang trí thuộc tính

Chúng ta cũng có thể định nghĩa các thuộc tính bằng phương thức property()

Thí dụ -

đầu ra

Getting message
Welcome to JavaTpoint
Setting message to Happy Learning!
Deleting message

Đoạn mã trên tương tự như đoạn mã trước. Sự khác biệt duy nhất là, chúng tôi đã tạo các phương thức getter, setter và deleter() thay vì một trình trang trí

Thuộc tính V/s Thuộc tính

Dưới đây là bảng các thuộc tính và thuộc tính

Các thuộc tính được xác định bởi các biến dữ liệu như tên, tuổi, chiều cao, v.v. Thuộc tính là loại thuộc tính đặc biệt. Có hai loại thuộc tính -
  • Thuộc tính lớp
  • thuộc tính thể hiện
Phương thức thuộc tính đi kèm với các phương thức getter, setter và delete như phương thức __get__, __set__ và __delete__. Các thuộc tính của lớp được định nghĩa trong phần thân của lớp chứ không phải trong các hàm. Chúng ta có thể định nghĩa các phương thức getters, setters và delete bằng hàm property(). Các thuộc tính sơ thẩm được định nghĩa trong phần thân của lớp bằng cách sử dụng từ khóa self thường là phương thức __init__(). Để đọc thuộc tính, chúng ta có thể sử dụng trình trang trí @property có thể được thêm vào phía trên phương thức của chúng ta

Sự kết luận

Vì vậy, trong hướng dẫn này, chúng ta đã học được sự khác biệt đáng kể giữa thuộc tính và thuộc tính trong Python. Hướng dẫn này bao gồm các loại thuộc tính trong Python và các thuộc tính trong Python là gì. Nó sẽ giúp nắm bắt các khái niệm lập trình hướng đối tượng một cách tốt hơn

Khi tạo một

class Student:
    name = "Jane"
    course = "JavaScript"
4 trong Python, thông thường bạn sẽ tạo các thuộc tính có thể dùng chung cho mọi đối tượng của một lớp hoặc các thuộc tính sẽ là duy nhất cho từng đối tượng của lớp

Trong bài viết này, chúng ta sẽ thấy sự khác biệt giữa thuộc tính lớp và thuộc tính thể hiện trong Python với các ví dụ

Trước khi làm điều đó, hãy xem cách tạo một lớp trong Python

Cách tạo một lớp trong Python

Để tạo một lớp trong Python, chúng tôi sử dụng từ khóa

class Student:
    name = "Jane"
    course = "JavaScript"
4 theo sau là tên của lớp. Đây là một ví dụ

class Student:
    name = "Jane"
    course = "JavaScript"

Trong đoạn mã trên, chúng tôi đã tạo một lớp có tên là

class Student:
    name = "Jane"
    course = "JavaScript"
6 với thuộc tính
class Student:
    name = "Jane"
    course = "JavaScript"
7 và
class Student:
    name = "Jane"
    course = "JavaScript"
8. Bây giờ hãy tạo các đối tượng mới từ lớp này

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane

Chúng ta đã tạo một đối tượng mới tên là

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
0 từ lớp
class Student:
    name = "Jane"
    course = "JavaScript"
6

Khi chúng tôi in

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
2, chúng tôi đã in "Jane" lên bảng điều khiển. Nhớ lại rằng giá trị của Jane đã được lưu trữ trong một biến trong lớp ban đầu được tạo

Các biến

class Student:
    name = "Jane"
    course = "JavaScript"
7 và
class Student:
    name = "Jane"
    course = "JavaScript"
8 này thực sự là các thuộc tính của lớp. Chúng ta sẽ xem thêm các ví dụ trong phần tiếp theo để giúp bạn hiểu rõ hơn

Thuộc tính lớp và trường hợp trong Python

Để đưa ra một định nghĩa cơ bản cho cả hai thuật ngữ, các thuộc tính của 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

Giống như bạn sẽ thấy trong các ví dụ trong phần này, các thuộc tính lớp được định nghĩa bên ngoài hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5

Mặt khác, các thuộc tính thể hiện, được định nghĩa trong hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5, là các biến lớp cho phép chúng ta xác định các giá trị khác nhau cho từng đối tượng của một lớp

Đây là một ví dụ

________số 8

Trong đoạn mã trên, chúng ta đã tạo một biến trong lớp

class Student:
    name = "Jane"
    course = "JavaScript"
6 có tên là
class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
8

Chúng tôi đã tạo thêm hai biến nhưng trong hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5 –
class Student:
    name = "Jane"
    course = "JavaScript"
7 và
class Student:
    name = "Jane"
    course = "JavaScript"
8 – mà chúng tôi đã khởi tạo bằng cách sử dụng tham số
class Student:
    school = "freeCodeCamp.org"
    
    def __init__(self, name, course):
        self.name = name
        self.course = course
    
Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")

print(Student1.name) # Jane
print(Student2.name) # John
2

Tham số đầu tiên trong hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5 dùng để khởi tạo các tham số khác khi tạo biến trong hàm. Bạn có thể gọi nó là gì tùy thích – theo quy ước,
class Student:
    school = "freeCodeCamp.org"
    
    def __init__(self, name, course):
        self.name = name
        self.course = course
    
Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")

print(Student1.name) # Jane
print(Student2.name) # John
2 chủ yếu được sử dụng

Biến

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
8 đóng vai trò là thuộc tính lớp trong khi
class Student:
    name = "Jane"
    course = "JavaScript"
7 và
class Student:
    name = "Jane"
    course = "JavaScript"
8 là thuộc tính thể hiện. Hãy chia nhỏ ví dụ trên để giải thích các thuộc tính của cá thể

Getting message
Welcome to JavaTpoint
Setting message to Happy Learning!
Deleting message
5

Chúng tôi đã tạo hai đối tượng từ lớp

class Student:
    name = "Jane"
    course = "JavaScript"
6 –
class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
0 và
Getting message
Welcome to JavaTpoint
Setting message to Happy Learning!
Deleting message
50. Mỗi đối tượng này mặc định sẽ có tất cả các biến được tạo trong lớp. Nhưng mỗi đối tượng có thể có biến
class Student:
    name = "Jane"
    course = "JavaScript"
7 và
class Student:
    name = "Jane"
    course = "JavaScript"
8 của riêng mình vì chúng được tạo trong hàm
class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5

Bây giờ, hãy in biến

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
8 cho từng đối tượng và xem điều gì sẽ xảy ra

class Student:
    name = "Jane"
    course = "JavaScript"
0

Cả hai đều cho chúng ta cùng một giá trị vì biến

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
8 là một thuộc tính của lớp

Sự kết luận

Trong bài viết này, chúng ta đã thấy cách tạo một lớp trong Python và sự khác biệt giữa các thuộc tính lớp và thể hiện

Tóm lại, các thuộc tính lớp vẫn giữ nguyên cho mọi đối tượng và được định nghĩa bên ngoài hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5. Các thuộc tính sơ thẩm có phần động vì chúng có thể có các giá trị khác nhau trong mỗi đối tượng

Các thuộc tính của trường hợp được xác định trong hàm

class Student:
    name = "Jane"
    course = "JavaScript"
    
Student1 = Student()

print(Student1.name)
# Jane
5

Mã hóa vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Sự khác biệt giữa thuộc tính và biến trong Python là gì?
Ihechikara Vincent Abba

Tiểu sử của tác giả này có thể được tìm thấy trong các bài viết của ông


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có việc làm với tư cách là nhà phát triển. Bắt đầu

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

Trong nghiên cứu thống kê, biến là các giá trị hoặc tập hợp có thể định lượng thay đổi theo thời gian. Thuộc tính là đặc điểm của một thứ liên quan đến chất lượng không thể định lượng được .

Thuộc tính trong Python là gì?

Các thuộc tính của một lớp là các đối tượng hàm xác định các phương thức tương ứng của các thể hiện của nó . Chúng được sử dụng để thực hiện kiểm soát truy cập của các lớp. Các thuộc tính của một lớp cũng có thể được truy cập bằng các phương thức và hàm tích hợp sau. getattr() – Hàm này được sử dụng để truy cập thuộc tính của đối tượng.

Sự khác biệt giữa thuộc tính và đối tượng trong Python là gì?

Trong python, mọi thứ đều là đối tượng. Và mọi đối tượng đều có thuộc tính và phương thức hoặc chức năng. Các thuộc tính được mô tả bởi các biến dữ liệu, ví dụ như tên, tuổi, chiều cao, v.v. Thuộc tính là loại thuộc tính đặc biệt có các phương thức getter, setter và delete như các phương thức __get__, __set__ và __delete__

Sự khác biệt giữa các biến và dữ liệu thuộc tính đưa ra một ví dụ về từng loại là gì?

Nếu công viên đo chiều cao của mỗi đứa trẻ khi chúng bước vào công viên, thì đó sẽ được coi là dữ liệu thay đổi. Tuy nhiên, việc kiểm tra xem một đứa trẻ có cao hơn biển báo “Phải cao hơn mức này để đi xe” hay không sẽ là dữ liệu thuộc tính