Nội dung chính
1. Các thuộc tính của Lớp
Các thuộc tính của lớp (class attributes) thuộc về chính bản thân của lớp, và chúng sẽ được chia sẻ cho tất cả các thể hiện (đối tượng) của lớp này. Những thuộc tính như vậy được định nghĩa trong phần thân của lớp và thường nằm ở phía trên cùng, để dễ đọc, dễ theo dõi.
Ví dụ về các thuộc tính của lớp:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Write Python code here
class sampleclass:
count = 0 # class attribute
def increase(self):
sampleclass.count += 1
# Calling increase() on an object
s1 = sampleclass()
s1.increase()
print(s1.count)
# Calling increase on one more
# object
s2 = sampleclass()
s2.increase()
print(s2.count)
print(sampleclass.count)
Kết quả in ra là:
1
2
2
2. Các thuộc tính của thể hiện
Không giống như các thuộc tính của lớp, các thuộc tính của thể hiện không được chia sẻ cho các đối tượng. Mỗi đối tượng sẽ sở hữu một bản sao các thuộc tính của thể hiện (còn trong trường hợp các thuộc tính của lớp thì tất cả các đối tượng đều tham chiếu đến một bản sao duy nhất).
Để 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:
– vars(): Hàm này sẽ hiển thị các thuộc tính của một thể hiện dưới dạng một dictionary (kiểu mảng gồm các phần từ là một cặp key-value).
– dir(): Hàm này sẽ hiển thị nhiều thuộc tính hơn so với hàm vars(), bởi vì nó không bị giới hạn trong phạm vi của instance – thể hiện của lớp. Hàm này sẽ hiển thị các thuộc tính của lớp, ngoài ra, nó cũng hiển thị cả các thuộc tính của các lớp cha mà lớp hiện tại đang kề thừa.
Đoạn chương trình Python dưới đây sẽ mô tả ví dụ về các thuộc tính của thể hiện:
# Python program to demonstrate
# instance attributes.
class emp:
def __init__(self):
self.name = 'xyz'
self.salary = 4000
def show(self):
print(self.name)
print(self.salary)
e1 = emp()
print("Dictionary form :", vars(e1))
print(dir(e1))
Kết quả in ra là:
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!