Bất kỳ ngôn ngữ lập trình hướng đối tượng nào cũng có các thuộc tính và hành vi đặc trưng. Thuộc tính đặc trưng trong bất kỳ ngôn ngữ nào cũng giống như thuộc tính trong python. Tất cả các thuộc tính của lớp python có thể thừa với hàm dir[] và vars[]
Chương trình
class attr:
x = "class attribute"
def __init__[self,y]:
self.y = y
print["Output:"]
obj = attr["instance attribute"]
print[attr.x]
print[obj.y]
Giải trình
Ở đây, chúng ta tạo biến x dưới dạng chuỗi là thuộc tính lớp và chuỗi y là thuộc tính thể hiện. Cuối cùng in các giá trị của cả hai biến
Các loại thuộc tính
Thuộc tính theo hai loại
Thuộc tính lớp
Các thuộc tính được định nghĩa bên ngoài phương thức trong đối tượng lớp python được gọi là thuộc tính lớp. Các thuộc tính này có thể được truy cập bởi các đối tượng lớp và đối tượng. Họ thuộc lớp
cú pháp
class name:
Chương trình
class attr:
x="class attribute”
print["Output:"]
obj=attr[]
print[obj.x]
Giải trình
Ở đây, chúng ta tạo một biến x bên cạnh lớp attr. Biến x là một thuộc tính lớp. Tạo một đối tượng tiêm của lớp attr và bằng thể hiện của lớp in giá trị của x
thuộc tính thể hiện
Thuộc tính sơ thẩm là các thuộc tính được định nghĩa bên trong phương thức __init__. Các thuộc tính này có thể được truy cập bởi một thể hiện của lớp. Chúng thuộc về các thể hiện của các đối tượng
cú pháp
class name:
def __init__[self, ..]
Chương trình
class attr:
x = "class attribute"
def __init__[self,y]:
self.y = y
print["Output:"]
obj = attr["instance attribute"]
print[obj.y]
Giải trình
Ở đây, chúng ta tạo một biến y bên trong phương thức __init__. y là một thuộc tính thể hiện. Tạo một đối tượng obj lớp f và in giá trị của y
Công dụng của thuộc tính lớp
Thuộc tính lớp được sử dụng trong nhiều trường hợp. Một số lĩnh vực trường hợp sử dụng
- Để tạo một biến giá trị không đổi
- Liệt kê đối tượng/dữ liệu trên tất cả các phiên bản
- Để đưa ra một giá trị mặc định
Thuộc tính lớp được khởi tạo trên tất cả các phiên bản của lớp. Vì vậy, các thuộc tính của lớp có thể được sử dụng để tạo các biến có giá trị không đổi trong lớp. Các biến này có thể được sử dụng trong phương thức. Vì vậy, các thuộc tính chiếm ít không gian trong bộ nhớ và ít thời gian hơn để khởi tạo
Chương trình
class pro:
pi = 3.14
def __init__[self,r]:
self.r = r
def area[self]:
print["A ="]
print[2 * self.pi * self.r]
print["Output:"]
obj=pro[10]
print[obj. area[]]
Giải trình
Ở đây, chúng ta tạo một biến pi nhận một giá trị không đổi. Pi là một thuộc tính lớp. Tạo vùng phương thức tính diện tích. Tạo một đối tượng của lớp và in diện tích hình tròn
Trong trường hợp chúng ta muốn thừa một số thuộc tính của tất cả các thể hiện của lớp. Rất tốn thời gian để vượt quá các thuộc tính bằng cách gọi từng đối tượng. Vì vậy, tất cả các trường hợp có thể được sắp xếp trong một biến duy nhất bằng cách sử dụng các thuộc tính lớp
Chương trình
class first:
ids = []
def __init__[self, stuid, name]:
self.stuid = stuid
self.name = name
first.ids.append[stuid]
print["Output:"]
s1 = first[1,"a"]
s1= first[2,"b"]
s1= first[3,"c"]
print[first.ids]
Giải trình
Ở đây, chúng tôi tạo một danh sách id dưới dạng thuộc tính lớp được sử dụng bên trong phương thức init để nối tất cả id của sinh viên bên trong danh sách tất cả các phiên bản của lớp. Chúng tôi tạo ba đối tượng cho lớp. Cuối cùng in danh sách
Với thuộc tính lớp, giá trị mặc định có thể được cung cấp cho thuộc tính trong lớp tùy chỉnh. Bằng cách vượt quá các thuộc tính theo lớp hoặc giá trị cá thể có thể được thay đổi
Chương trình
class vote:
age = 18
c = 0
def __init__[self, age, name]:
self.age = age
self.name = name
def votting[self]:
if [self.age < vote.age]:
return
vote.c += 1
print["Output:"]
p=vote[19, "a"]
p.votting[]
print[vote.c]
Giải trình
Ở đây, chúng tôi tạo một thuộc tính lớp tuổi được sử dụng bên trong phương thức bỏ phiếu để so sánh tuổi của thể hiện của lớp
Thuộc tính lớp đến cá thể
- Thuộc tính lớp có thể được thay đổi thành thuộc tính thể hiện bằng cách thay đổi giá trị của thuộc tính lớp bằng thể hiện của lớp
- Đây không phải là trường hợp thuộc tính lớp là một đối tượng có thể thay đổi, chẳng hạn như danh sách, v.v.
Chương trình
________số 8Giải trình
Ở đây chúng tôi tạo một biến x làm thuộc tính lớp. Giá trị của x được thay đổi bởi obj [thể hiện của lớp]. In giá trị của x theo obj, class pro và một đối tượng khác obj2. Kiểm tra các thuộc tính của obj bằng cách in thư mục của obj
Không gian tên trong thuộc tính
- Không gian tên là một từ điển trong python lưu trữ khóa dưới dạng đối tượng của lớp và giá trị dưới dạng thuộc tính. Một không gian tên được chia trong trường hợp này thành hai phần không gian tên đối tượng và không gian tên lớp
- Khi một thể hiện của lớp truy cập bất kỳ thuộc tính nào, đầu tiên nó tìm kiếm trong không gian tên đối tượng sau đó là không gian tên lớp. Thuộc tính thể hiện được ưu tiên hơn thuộc tính lớp. Trong lập trình, chi phí truy cập các thuộc tính của lớp theo thể hiện của lớp sẽ tốn thời gian
- Khi một lớp truy cập bất kỳ thuộc tính nào, nó sẽ được tìm kiếm trong thuộc tính của lớp và nếu không sẽ đưa ra lỗi
Chức năng và thuộc tính.
- Trong python, các hàm được coi là thuộc tính của lớp. Tất cả các phương thức tĩnh, lớp, thể hiện là các thuộc tính thuộc về lớp
- Các phương thức tĩnh và lớp được liên kết với lớp trong khi phương thức thể hiện được liên kết với thể hiện của lớp
- Trong python, các phương thức thể hiện cũng có thể được gọi bởi chính lớp đó bằng cách truyền các thể hiện của một đối tượng trong phương thức. Nó tiết kiệm bộ nhớ trong chương trình python
Chương trình
class pro:
x="a"
def __init__[self, y, z]:
self.y = y
self.z = z
@classmethod
def funclmethod[cls, f]:
y = f["y"]
z=f["z"]
print["classmethod called"]
return cls[y, z]
@staticmethod
def funstmethod[]:
print["staticmethod called"]
def funinstmethod[self]:
print["instance method called"]
print["Output:"]
obj=pro["b", "c"]
obj.funinstmethod[]
pro.funinstmethod[obj]
Giải trình
Ở đây, chúng tôi tạo ba chức năng funclmethod, funstmethod, funinstmethod với trang trí @classmethod, @staticmethod. Tạo một đối tượng của lớp pro là obj và gọi phương thức thể hiện là funinstmethod. Thứ hai, Gọi phương thức thể hiện bằng cách chuyển thể hiện obj của lớp
Thuộc tính so với. Thuộc tính
Trong python, thuộc tính hoàn toàn khác với thuộc tính. Thuộc tính là phương thức với trình trang trí @properties. Chúng được sử dụng để truy cập các thuộc tính riêng tư của một lớp và hoạt động như các hàm getter-setter trong lớp python
Chương trình
class name:
0Giải trình
Ở đây, chúng tôi tạo các phương thức thú vị với trình trang trí @property, @fun. setter được sử dụng để lấy và đặt các giá trị của biến x
Phần kết luận
Chúng tôi hy vọng bài viết này đã cung cấp cho bạn tất cả ý tưởng rõ ràng về Thuộc tính, các loại thuộc tính [thuộc tính lớp và thuộc tính thể hiện], cách sử dụng thuộc tính lớp, thuộc tính từ lớp đến thể hiện, không gian tên trong thuộc tính, hàm và thuộc tính, thuộc tính so với thuộc tính. thuộc tính
Đối với các lập trình viên hướng đối tượng trong Python, việc xử lý các thuộc tính lớp là điều cần thiết để biết. Do đó, rất khuyến khích sử dụng các thuộc tính python trong khi lập trình vì nó tiêu tốn ít bộ nhớ hơn và theo cách tiếp cận lập trình hướng đối tượng