Các ví dụ trên là các lớp và đối tượng ở dạng đơn giản nhất và không thực sự hữu ích trong các ứng dụng thực tế
Để hiểu ý nghĩa của các lớp, chúng ta phải hiểu hàm __init__[] tích hợp sẵn
Tất cả các lớp đều có một hàm gọi là __init__[], hàm này luôn được thực thi khi lớp bắt đầu
Sử dụng hàm __init__[] để gán giá trị cho thuộc tính đối tượng hoặc các thao tác khác cần thực hiện khi đối tượng được tạo
Ví dụ
Tạo một lớp tên là Person, sử dụng hàm __init__[] để gán giá trị cho tên và tuổi
lớp Người.
def __init__[bản thân, tên, tuổi].
bản thân. tên = tên
bản thân. tuổi = tuổi
p1 = Người["John", 36]
in[p1. tên]
in[p1. tuổi]
Ghi chú. Hàm
5 106 được gọi tự động mỗi khi lớp được sử dụng để tạo một đối tượng mới
Hàm __str__[]
Hàm __str__[] kiểm soát những gì sẽ được trả về khi đối tượng lớp được biểu diễn dưới dạng chuỗi
Nếu hàm __str__[] không được đặt, thì biểu diễn chuỗi của đối tượng được trả về
Ví dụ
Biểu diễn chuỗi của một đối tượng KHÔNG CÓ hàm __str__[]
lớp Người.
def __init__[bản thân, tên, tuổi].
bản thân. tên = tên
bản thân. tuổi = tuổi
p1 = Người["John", 36]
bản in[p1]
Tự mình thử »Ví dụ
Biểu diễn chuỗi của một đối tượng VỚI hàm __str__[]
lớp Người.
def __init__[bản thân, tên, tuổi].
bản thân. tên = tên
bản thân. tuổi = tuổi
def __str__[self].
return f"{self. tên}[{bản thân. tuổi}]"
p1 = Người["John", 36]
bản in[p1]
Tự mình thử »phương pháp đối tượng
Các đối tượng cũng có thể chứa các phương thức. Các phương thức trong các đối tượng là các chức năng thuộc về đối tượng
Hãy để chúng tôi tạo một phương thức trong lớp Person
Ví dụ
Chèn một hàm in lời chào và thực hiện nó trên đối tượng p1
lớp Người.
def __init__[bản thân, tên, tuổi].
bản thân. tên = tên
bản thân. tuổi = tuổi
def myfunc[self].
print["Xin chào tôi tên là " + tự. tên]
p1 = Person["John", 36]
p1. myfunc[]
Ghi chú. Tham số
5 107 là tham chiếu đến phiên bản hiện tại của lớp và được sử dụng để truy cập các biến thuộc về lớp
Tham số bản thân
Tham số
5 107 là tham chiếu đến phiên bản hiện tại của lớp và được sử dụng để truy cập các biến thuộc về lớp
Nó không nhất thiết phải được đặt tên là
5 107 , bạn có thể gọi nó là gì tùy thích, nhưng nó phải là tham số đầu tiên của bất kỳ chức năng nào trong lớp
Ví dụ
Sử dụng các từ mysillyobject và abc thay vì self
lớp Người.
def __init__[mysillyobject, name, age].
mysillyobject. name = name
mysillyobject. tuổi = tuổi
def myfunc[abc].
print["Xin chào, tên tôi là " + abc. tên]
p1 = Person["John", 36]
p1. myfunc[]
Sửa đổi thuộc tính đối tượng
Bạn có thể sửa đổi các thuộc tính trên các đối tượng như thế này
Xóa thuộc tính đối tượng
Bạn có thể xóa các thuộc tính trên các đối tượng bằng cách sử dụng từ khóa
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself0
Xóa đối tượng
Bạn có thể xóa các đối tượng bằng cách sử dụng từ khóa
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself0
Tuyên bố vượt qua
Định nghĩa
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself2 không thể để trống, nhưng nếu vì lý do nào đó bạn có định nghĩa
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself2 không có nội dung, hãy đặt câu lệnh
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself4 để tránh bị lỗi
Các lớp Python chủ yếu là các mẫu để tạo các đối tượng mới. Nội dung/thuộc tính của các đối tượng thuộc một lớp được mô tả bởi lớp
Chính xác thì thuộc tính lớp là gì?
Các thuộc tính của lớp không là gì ngoài các biến của một lớp. Điều quan trọng cần lưu ý là các biến này được chia sẻ giữa tất cả các thể hiện của lớp
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z]
5 10
Trong mã ví dụ trên, z là một thuộc tính của lớp và được chia sẻ bởi các thể hiện của lớp obj1 và obj2
Trong hướng dẫn này, bạn sẽ học cách tìm nạp danh sách các thuộc tính lớp trong Python
Sử dụng phương thức dir[] để tìm tất cả các thuộc tính của lớp
Nó trả về một danh sách các thuộc tính và phương thức của đối tượng/lớp được truyền. Khi được gọi trên các đối tượng lớp, nó cũng trả về một danh sách tên của tất cả các thuộc tính hợp lệ và thuộc tính cơ sở
cú pháp. dir[object] , trong đó đối tượng là tùy chọn
Tại đây, bạn có thể lấy danh sách các thuộc tính của lớp;
- Bằng cách tự mình vượt qua lớp
class example: z=5 obj1=example[] print[obj1.z] obj2=example[] print[obj1.z+obj2.z] print[dir[example]] #By passing the class itself
____3
- Bằng cách truyền đối tượng của lớp____4
5 10 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'z']
Tuy nhiên, phương thức dir[] cũng trả về các phương thức kỳ diệu của lớp cùng với các thuộc tính của lớp
Bằng cách sử dụng __dict__ nhận thuộc tính lớp
Nó lưu trữ/trả về một từ điển các thuộc tính mô tả một đối tượng. Hãy để chúng tôi hiểu điều tương tự bằng cách xem xét một ví dụ
cú pháp. vật. __dict__
class fruit[]: def __init__[self,fruitname,color]: self.name=fruitname self.color=color apple=fruit["apple","red"] print[apple.name] print[apple.color] print[apple.__dict__]
apple red {'name': 'apple', 'color': 'red'}
Ở đây, quả táo là một đối tượng thuộc lớp trái cây. Vì vậy, __dict__ đã trả về một từ điển chứa các thuộc tính của đối tượng tôi. e. , táo
Ngoài ra, bạn có thể chỉ nhận thêm các khóa hoặc giá trị cho đối tượng cụ thể bằng cách sử dụng hệ thống lưu trữ khóa, giá trị của từ điển
class fruit[]: def __init__[self,fruitname,color]: self.name=fruitname self.color=color apple=fruit["apple","red"] print[apple.name] print[apple.color] print[apple.__dict__] print[apple.__dict__.keys[]] print[apple.__dict__.values[]]
apple red {'name': 'apple', 'color': 'red'} dict_keys[['name', 'color']] dict_values[['apple', 'red']]
Bằng cách sử dụng getmembers[] của mô-đun kiểm tra
Hàm getmembers[] truy xuất các thành viên của một đối tượng, chẳng hạn như một lớp trong danh sách
5 100
5 101
Để có danh sách chỉ thuộc tính của đối tượng được truyền, tôi. e. , để xóa tất cả các thuộc tính/phương thức ma thuật dựng sẵn công khai và riêng tư khỏi danh sách;
5 102____13
Sử dụng phương thức vars[]
Nó lấy một đối tượng làm tham số và trả về các thuộc tính của nó
cú pháp. lọ [đối tượng]
5 104
5 105
Tuy nhiên, bạn phải lưu ý rằng hai phương thức trên chỉ trả về các thuộc tính lớp cho lớp cơ sở tương ứng