Trong một số trường hợp, điều quan trọng là phải biết loại của lớp khi khởi tạo một đối tượng. Chúng tôi sẽ sử dụng lớp trên để chỉ cho bạn các phương pháp khác nhau để thực hiện việc này
Python Nhận tên lớp. Sử dụng __class__. __Tên__
Để lấy tên lớp của một đối tượng hoặc kiểu của nó, phương pháp đầu tiên là sử dụng thuộc tính __class__. Chúng ta có thể kết hợp thuộc tính này với thuộc tính __name__ để lấy tên lớp của một đối tượng. Đây là cách làm
class Superhero: def __init__[self, name, p]: self.name = name self.power = self.Power[p] class Power: def __init__[self, power]: self.power = power superhero = Superhero["Superman", ['X-rays vision', 'superhuman strength', 'super-speed']] print[superhero.__class__] print[superhero.__class__.__name__]
đầu ra
Superhero
Để hiển thị tên của lớp bạn phải
- Tạo một đối tượng siêu anh hùng của lớp Superhero[]
- Hiển thị tên của lớp bằng class. Tên
Python Nhận tên lớp. Sử dụng thuộc tính type[] và __name__
Một phương pháp khác là sử dụng hàm type[]. Hàm type[] là một hàm được xác định trước trong python được sử dụng để tìm ra loại hoặc tên lớp của một đối tượng
Chúng ta có thể kết hợp hàm type[] với biến __name__ để lấy tên của một lớp
class Superhero: def __init__[self, name, p]: self.name = name self.power = self.Power[p] class Power: def __init__[self, power]: self.power = power superhero = Superhero["Superman", ['X-rays vision', 'superhuman strength', 'super-speed']] print[type[superhero].__name__]
đầu ra
Superhero
Biến __name__ là một biến đặc biệt được tích hợp trong python cung cấp tên của mô-đun hiện tại nơi nó được sử dụng
Các lớp lồng nhau. Sử dụng __qualname__ thay vì __name__
Trong một số trường hợp, có thể có các lớp lồng nhau. Trong trường hợp này, nên sử dụng thuộc tính __qualname__ hơn là __name__ để lấy tên đủ điều kiện của loại
Đây là một ví dụ
class Superhero: def __init__[self, name, p]: self.name = name self.power = self.Power[p] class Power: def __init__[self, power]: self.power = power superhero = Superhero["Superman", ['X-rays vision', 'superhuman strength', 'super-speed']] print[superhero.power.__class__.__name__] print[superhero.power.__class__.__qualname__]
đầu ra
Power Superhero.Power
Phần kết luận
Hướng dẫn này giải thích cho bạn các phương pháp khác nhau để lấy tên hoặc loại của một lớp. Cảm ơn bạn đã dành thời gian để đọc nó và tôi hy vọng nó đã giúp bạn
Trong ví dụ này, chúng ta có thể lấy tên của đối tượng lớp bằng cách sử dụng thuộc tính __qualname__ thay vì thuộc tính __name__. __qualname__ cung cấp đường dẫn chấm đến tên của đối tượng đích. Khi xử lý các cấu trúc lồng nhau, chẳng hạn như khi một phương thức được chứa trong một lớp, sử dụng __qualname__ sẽ có lợiSuperhero0 là thuộc tính của lớp mà nó được liên kết và
Superhero1 là một biến đặc biệt trong Python. Chức năng của nó phụ thuộc vào nơi nó được sử dụng
- Tạo một đối tượng
Superhero
2 của lớpSuperhero
3 - In tên của lớp bằng cách sử dụng
Superhero
4
ví dụ 2. Sử dụng thuộc tính type[] và __name__
class Vehicle:
def name[self, name]:
return name
v = Vehicle[]
print[type[v].__name__]
đầu ra
Vehicle
Sử dụng thuộc tính
Superhero1 với
Vehicle0, bạn có thể lấy tên lớp của một thể hiện/đối tượng như trong ví dụ trên.
Vehicle0 đưa ra lớp đối tượng
Superhero2 và
Superhero1 đưa ra tên lớp
Một lớp, giống như một hàm tạo của một đối tượng, có thể được coi là một mẫu do người dùng định nghĩa để tạo các đối tượng. Với thuật ngữ “lớp” được sử dụng trong chương trình python, bạn có thể xây dựng các lớp. Một lớp là một loại cấu trúc dữ liệu có thể chứa cả dữ liệu và phương thức thành viên
Các lớp là cốt lõi của OOP và thông qua chúng mà các đối tượng được tạo ra. Lớp được định nghĩa là mô tả hoặc định nghĩa của đối tượng. Lớp mô tả đặc điểm của đối tượng nhưng không liên quan đến bản thân đối tượng
Hơn nữa, nhiều đối tượng được mô tả bởi một lớp duy nhất. Việc lập trình tuân theo một luồng trong đó lớp được chỉ định trước, sau đó là mô tả đối tượng. Mỗi lớp có tên riêng và tập hợp các thuộc tính và hành vi riêng
Cú pháp của lớp trong Python
Sau đây là cú pháp để tạo lớp python
lớp Tên lớp.
#dòng mã 1
.
.
.
#dòng mã n
Một thuật ngữ khác cho một lớp là thủ tục. Các phương thức là tên của các hàm trong các lớp. Họ có một khối mã có thể được gọi để thực hiện một tập hợp các hoạt động và trả về kết quả
ví dụ 1. Tạo một lớp trong Python
Các lớp được tạo bằng cách sử dụng thuật ngữ lớp và mỗi lớp có một bộ thuộc tính riêng. Các thuộc tính đề cập đến các biến bao gồm một lớp. Dấu chấm [. Toán tử ] thường được sử dụng để truy cập các thuộc tính luôn công khai
Chúng tôi đã tạo một lớp bằng cách sử dụng thuật ngữ "lớp" trong tập lệnh python sau. Tên lớp được định nghĩa là “Những bông hoa. ” Chúng tôi đã tạo một hàm tạo init của lớp, hàm này đã nhận một biến “f_name” và “f_color. ” Sau đó, chúng tôi truy cập biến bằng cách sử dụng toán tử dấu chấm. Hàm được xây dựng ở đây dưới dạng một “hàm” trong đó chúng ta đã chuyển thể hiện “bản thân” của lớp. Biểu thức in hiển thị giá trị thuộc tính lớp. Sau đó, cuối cùng, chúng ta đã khởi tạo các giá trị cho f_name và f_color trong một biến mới, “flower1,” và gọi hàm[]
lớp Hoa.
def __init__[bản thân, . f_name, f_color]:
bản thân . f_name = f_name
self . Hàm f_color = f_color
def . [self]:
in["Hoa là " + self.f_name]
hoa1 = Hoa . ["Rose", "Red"]
flower1.chức năng[]
Giá trị thuộc tính lớp được hiển thị trên màn hình như sau
ví dụ 2. Nhận Tên lớp bằng cách sử dụng __class__. __name__ trong Python
Thuộc tính __class__ thường áp dụng cho lớp của đối tượng mà chúng ta muốn lấy, là cách đầu tiên và dễ nhất để lấy tên lớp trong Python. __name__ có thể được sử dụng với __class__ để lấy lớp của đối tượng. Để xác định lớp của đối tượng, đoạn mã sau sử dụng cả __class__ và __name__
Chúng tôi đã thành lập một lớp học với tên là động vật. ” Hàm tạo init được gọi khi chúng ta đã truyền một đối tượng “self” và tên biến “animal” làm đối số. Sau đó, biến đối tượng “động vật” được định nghĩa. Để hiển thị tên lớp, trước tiên chúng tôi xây dựng đối tượng là “obj1” cho lớp đó và sau đó sử dụng lớp. tên để hiển thị tên của nó
lớp động vật.
def __init__[bản thân, . animal]:
bản thân . động vật = động vật
obj1 = . __class__ animal["Horse"]
print [obj1.__class__]
in [ obj1. __lớp__. __name__ ]
Tên lớp được trình biên dịch python truy cập trong trình bao dấu nhắc đã cho
ví dụ 3. Lấy tên lớp bằng cách sử dụng type[] và __name__attribute trong Python
Một tùy chọn khác là sử dụng phương thức type[], đây là phương thức Python tích hợp để xác định loại đối tượng hoặc tên lớp. Như đã thấy trong ví dụ bên dưới, bạn phải kết hợp phương thức type[] với biến __name__ để lấy tên lớp
Trong tập lệnh python sau đây, chúng ta có một lớp có tên “nhân viên. ” Sau khi tạo một lớp, chúng ta đã gọi một hàm tạo mà đối tượng “self” và biến “employee” được truyền vào. Sau đó, chúng ta đã tạo một biến đối tượng “self. người lao động". Id đối tượng lớp được thiết lập là “emp_name” và cũng được khởi tạo bằng cách gọi tên lớp. Phương thức loại được tạo bên trong chức năng in. Chúng tôi đã chuyển đối tượng của lớp với __name__. Tên của lớp được cung cấp sẽ được lấy bằng phương pháp này
hạng nhân viên.
def __init__[bản thân, . employee]:
bản thân . nhân viên = nhân viên
emp_name = . __name__ employee["kalsoom"]
print [type[emp_name].__name__]
Do đó, chúng tôi đã nhận được tên lớp theo loại và phương thức __name__attribute khi đầu ra được hiển thị trong hình ảnh
Ví dụ 4. Lấy tên lớp bằng cách sử dụng các lớp lồng nhau trong Python
Đôi khi bạn cần một tên lớp cho các lớp lồng nhau trong chương trình của chúng ta. Để có được tên của đối tượng có thẩm quyền, trong trường hợp này, chúng ta có thể sử dụng thuộc tính __qualname__ thay vì thuộc tính __name__
Ở đó chúng tôi có hai lớp được định nghĩa là “nước trái cây” và “Bữa ăn. ” Ngoài ra, chúng tôi đã tạo các thể hiện biến cho cả hai lớp, như được hiển thị trong mã nguồn. Đối tượng của bữa ăn được gọi bên trong lớp “juice” và truyền một biến “j” làm tham số. Sau đó, lớp “juice” đối tượng “obj_juice” được thiết lập nơi chúng ta đã đặt các giá trị cho đối tượng juice và meal. Hàm in có cả phương thức “__name__” để lấy tên của lớp và __qualname__ để lấy tên đối tượng đủ điều kiện
lớp Nước trái cây.
def __init__[bản thân, . j_name, j]:
bản thân . j_name = j_name
self . obj_meal = bản thân . Bữa ăn[ j ]
< .
class Meal:
def __init__[bản thân, . obj_meal]:
bản thân . obj_meal = obj_meal
obj_juice < . = Juice["pineapple", ['fries']]
print[obj_juice .obj_meal . __lớp__. __name__ ]
in[ obj_juice. obj_meal . __lớp__. __qualname__ ]
Đầu ra được tạo ra như sau
Phần kết luận
Nhiều lợi ích của lập trình hướng đối tượng trong Python bao gồm tính trừu tượng, tính đa hình và các tính năng khác. Nó tạo điều kiện cho việc bảo trì mã của bạn dễ dàng và không có lỗi bằng cách tăng cường cấu trúc của nó và cho phép nó được sử dụng lại. Bài viết này trình bày cách sử dụng các phương thức __class__, type[] và __qualname__ trong Python để nhanh chóng lấy tên lớp. Điều quan trọng là bạn phải nắm bắt và hiểu đúng chiến lược này để lập trình đơn giản và hiệu quả.