__ Và __ con trăn
Các phương thức ma thuật là các phương thức đặc biệt trong python có hai dấu gạch dưới (dunder) ở cả hai bên của tên phương thức. Các phương pháp ma thuật chủ yếu được sử dụng để nạp chồng toán tử. Quá tải toán tử có nghĩa là cung cấp chức năng bổ sung cho toán tử, python gọi ngầm các phương thức ma thuật để cung cấp chức năng bổ sung cho nó. Ví dụ: nhân hai số nguyên có thể được thực hiện bằng toán tử nhân (2*3 = 6) và toán tử tương tự có thể được sử dụng để lặp lại chuỗi (“apple- ” * 3 = ‘apple- apple- apple’) Show
Một số ví dụ về các phương thức ma thuật là __init__, __len__, __repr__, __add__, v.v. __add__ phương pháp ma thuậtPhương thức ma thuật __add__ được sử dụng để thêm các thuộc tính của thể hiện lớp. Ví dụ: giả sử object1 là một thể hiện của lớp A và object2 là một thể hiện của lớp B và cả hai lớp này đều có một thuộc tính gọi là 'a', chứa một số nguyên. Khi thao tác object1 + object2 được thực hiện, phương thức __add__ sẽ ngầm thêm các thuộc tính của các trường hợp này như object1. một + đối tượng2. a, nếu được định nghĩa như vậy Trong đoạn mã trên, các lớp Một và Hai có một thuộc tính gọi là 'a' chứa một giá trị số nguyên. Chúng tôi xác định hai trường hợp a_instance và b_instance chứa 10 và 20 giá trị trong thuộc tính của chúng tương ứng. Khi chúng ta thực hiện thao tác a_instance + b_instance, phương thức __add__ được xác định sẽ chuyển đổi thao tác thành a_instance. a + b_instance. a dẫn đến đầu ra 30 Hoạt động chính xác có thể được thực hiện bằng cách sử dụng chuỗi class Str: def __init__(self, string_): self.string_ = string_ def __add__(self, string2): return self.string_ + string2 instance1 = Str("Hello") print(instance1 + " Folks") # Output: Hello Folks Hoạt động instance1 + ” Folks” nối hai chuỗi bằng cách ngầm thực hiện thao tác sau instance1. chuỗi_ + "Mọi người" phương pháp ma thuật __getitem__ và __setitem__Phương thức __getitem__ được sử dụng để lấy một mục từ thuộc tính của trường hợp được gọi. __getitem__ thường được sử dụng với các thùng chứa như danh sách, tuple, v.v. Có thể bạn quan tâmclass A: def __init__(self, item): self.item = item def __getitem__(self, index): return self.item[index] a = A([1, 2, 3]) print(f"First item: {a[0]}") print(f"Second item: {a[1]}") print(f"Third item: {a[2]}") # Output: # First item: 1 # Second item: 2 # Third item: 3 Phương thức __setitem__ được sử dụng để đặt mục thành một chỉ mục cụ thể của thuộc tính của phiên bản được gọi. Tương tự như __getitem__, __setitem__ cũng được sử dụng với các thùng chứa class SetItemExample: def __init__(self, item): self.item = item def __setitem__(self, index, item1): self.item[index] = item1 setitem_instance = SetItemExample([1, 2, 3]) print(f"Items before setting: {setitem_instance.item}") setitem_instance[1] = 5 print(f"Items after setting: {setitem_instance.item}") # Output # Items before setting: [1, 2, 3] # Items after setting: [1, 5, 3] __repr__ phương pháp ma thuậtPhương thức ma thuật __repr__ được sử dụng để biểu diễn thể hiện của một lớp trong chuỗi. Khi chúng ta cố gắng in đối tượng của một lớp, phương thức __repr__ được gọi ngầm để trả về một chuỗi class ReprExample: def __init__(self, a, b, c): self.a = a self.b = b self.c = c def __repr__(self): return f"ReprExample(a={self.a}, b={self.b}, c={self.c})" repr_instance = ReprExample(1, 2, 3) print(repr_instance) # Output # ReprExample(a=1, b=2, c=3) Lớp trên nhận ba tham số nguyên là a, b và c. Chúng tôi tạo một phiên bản bằng cách sử dụng ReprExample(1, 2, 3) và nếu chúng tôi in phiên bản, nó sẽ in chuỗi được xác định trong __repr__ __len__ phương pháp ma thuậtPhương pháp ma thuật __len__ được sử dụng để tìm độ dài của các thuộc tính thể hiện. Khi chúng ta sử dụng len(instance), nó trả về độ dài của thuộc tính instance thường là các thùng chứa class LenExample: def __init__(self, item): self.item = item def __len__(self): return len(self.item) len_instance = LenExample([1, 2, 3]) print(len(len_instance)) # Output: 3 Khi chúng ta gọi phương thức len(), độ dài của danh sách có tên mục được trả về được xác định bên trong phương thức __len__ Các phương pháp ma thuật __lt__, __gt__, __le__, __ge__, __eq__ và __ne__Toán tử so sánh có thể được sử dụng để so sánh giữa các thuộc tính của đối tượng. Các phương thức khả dụng là __lt__, __gt__, __le__, __ge__, __eq__ và __ne__ lần lượt thực hiện các phép toán nhỏ hơn, lớn hơn, nhỏ hơn hoặc bằng, lớn hơn hoặc bằng, bằng và không bằng class Comparison: def __init__(self, a): self.a = a def __lt__(self, object2): return self.a < object2.a def __gt__(self, object2): return self.a > object2.a def __le__(self, object2): return self.a <= object2.a def __ge__(self, object2): return self.a >= object2.a def __eq__(self, object2): return self.a == object2.a def __ne__(self, object2): return self.a != object2.a a = Comparison(1) b = Comparison(2) print( a < b, a > b, a <= b, a >= b, a == b, a != b ) # Output # True False True False False True Các trường hợp a và b chứa một thuộc tính có tên là 'a' chứa các giá trị nguyên tương ứng là 1 và 2 Khi chúng ta gọi các hoạt động sau đây,
các phương thức ma thuật được gọi ngầm bởi python thực hiện các thao tác sau thay vì các thao tác được đề cập ở trên,
Các hoạt động tiềm ẩn này được xác định bên trong các phương thức ma thuật trả về các giá trị boolean __contains__ phương pháp ma thuậtPhương thức __contains__ được gọi khi sử dụng toán tử thành viên 'in'. Khi chúng ta muốn kiểm tra xem một phần tử có trong các thuộc tính của đối tượng thường là bộ chứa (danh sách, bộ) hay không, chúng ta có thể sử dụng phương thức __contains__ class ContainsExample: def __init__(self, items): self.items = items def __contains__(self, item): return item in self.items contains_instance = ContainsExample([1, 2, 3, 4, 5]) print(4 in contains_instance) Đoạn mã trên sử dụng phương thức __contains__ để tìm xem một số nguyên có trong danh sách các số nguyên hay không. Trong đoạn mã trên, chúng tôi đã kiểm tra xem số nguyên 4 có trong danh sách các số nguyên là một thuộc tính của lớp ChứaExample hay không __enter__ và __exit__ phương pháp ma thuậtCác phương thức __enter__ và __exit__ được sử dụng cùng với khối 'with' trong python. Khối 'with' trong python được sử dụng để mở và đóng đối tượng tệp hoặc bất kỳ đối tượng nào khác có phương thức đóng class WriteFile: def __init__(self, file_name): self.file_name = file_name self.file = None def log(self, text): self.file.write(text+'n') def __enter__(self): self.file = open(self.file_name, "a+") return self def __exit__(self, exc_type, exc_val, exc_tb): self.file.close() with WriteFile(r"filename.txt") as log_file: log_file.log("Log Test 1") log_file.log("Log Test 2") Khi lớp được gọi với tên tệp 'filename. txt' thì phương thức __enter__ ngầm tạo một tệp văn bản. Sau khi thực hiện các lệnh trong tệp văn bản, phương thức __exit__ được gọi ngầm để đóng đối tượng tệp. Bằng cách này, chúng ta có thể sử dụng các phương thức ma thuật __enter__ và __exit__. Các phương thức này cũng có thể được sử dụng để mở và đóng kết nối cơ sở dữ liệu __call__ phương pháp ma thuật__call__ phương thức ma thuật được gọi khi thể hiện của một lớp được gọi. Thay vì viết một phương thức khác để thực hiện một số thao tác nhất định, chúng ta có thể sử dụng phương thức __call__ để gọi trực tiếp từ tên đối tượng ________số 8_______Ví dụ call_example có thể được gọi trực tiếp như một phương thức vì chúng ta đã định nghĩa phương thức __call__ trong lớp. Phương thức __call__ trong ví dụ này nhận giá trị có tên b và nhân với thuộc tính 'val' của lớp dẫn đến kết quả là 30 trong ví dụ trên __iter__ phương pháp ma thuậtPhương thức __iter__ được sử dụng để cung cấp một đối tượng trình tạo cho thể hiện được cung cấp. Chúng ta có thể sử dụng phương thức iter() và next() để tận dụng phương thức __iter__ class Squares: def __init__(self, start, stop): self.start = start self.stop = stop def __iter__(self): for value in range(self.start, self.stop + 1): yield value ** 2 i = iter(Squares(1, 3)) print(next(i)) print(next(i)) print(next(i)) # Output: 1 4 9 Trong đoạn mã trên, chúng ta sẽ tìm bình phương của các giá trị giữa phạm vi được cung cấp (bắt đầu và dừng). Khi chúng ta gọi phương thức iter(Squares(1, 3)), phương thức __iter__ được gọi, đây là phương thức mang lại bình phương của các giá trị giữa phạm vi được cung cấp. Trong ví dụ của chúng tôi, chúng tôi sử dụng phạm vi từ 1 đến 3 để đầu ra sẽ là 1, 4 và 9 nếu chúng tôi gọi phương thức next() Tóm lược
Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả __ __ phương thức trong Python là gì?__enter__ và __exit__ phương pháp ma thuật
. Khối 'with' trong python được dùng để mở và đóng đối tượng tệp hoặc bất kỳ đối tượng nào khác có phương thức đóng .
__ chứa __ trong Python là gì?Chuỗi Python __contains__() là một phương thức thể hiện và trả về giá trị boolean Đúng hoặc Sai tùy thuộc vào việc đối tượng chuỗi có chứa đối tượng chuỗi đã chỉ định hay không. Note that the Python string contains() method is case sensitive.
__ lớp __ trong Python là gì?__class__ là một thuộc tính trên đối tượng đề cập đến lớp mà đối tượng được tạo ra từ đó . một. __lớp__ # Đầu ra.
__ cuộc gọi __ trong Python là gì?__call__ trong Python
. Khi thể hiện được gọi là một hàm; . ) là viết tắt của x. enables Python programmers to write classes where the instances behave like functions and can be called like a function. When the instance is called as a function; if this method is defined, x(arg1, arg2, ...) is a shorthand for x. |
Bài Viết Liên Quan
Hướng dẫn break if php - phá vỡ nếu php
(PHP 4, PHP 5, PHP 7, PHP 8) break ends execution of the current for, foreach, while, do-while or switch structure. break accepts an optional numeric argument which tells it how many nested ...
Cách chơi lol trên linux
Tôi là một người chơi đam mê Liên minh huyền thoại (LOL), Tôi hiện đang chơi trên máy chủ Bắc Mỹ Latinh (LAN) với bút danh tgtmundoVzla và ở đó tôi đã gặp ...
Ngày 2 12 âm năm 2023
Lịch vạn niên tháng 12 năm 2023Dương lịch: Tháng 12 năm 2023Âm lịch: Bắt đầu từ ngày 19/10 đến ngày 19/11Tiết khí:- Tiểu Tuyết (Từ ngày 22/11 đến ngày 6/12)- ...
Hướng dẫn python check data type of list elements - python kiểm tra kiểu dữ liệu của các phần tử danh sách
Vâng in thực sự là đường cú pháp cho __contains__, được lặp lại trên các nội dung của danh sách.does iterate over the contents of the list.Nếu bạn muốn sử dụng in ...
Hướng dẫn how do you capitalize every first word in python? - làm cách nào để bạn viết hoa từng từ đầu tiên trong python?
Chỉ vì loại điều này là thú vị đối với tôi, đây là hai giải pháp nữa.Chia thành từ, giới thiệu ban đầu từng từ từ các nhóm chia và tham gia lại. ...
Hướng dẫn access session storage javascript - truy cập lưu trữ phiên javascript
Sự khác nhau và cách sử dụng Local Storage, Session Storage và CookieBạn bị lẫn lộn giữa session storage, local storage và cookies? Bài viết dưới đây sẽ giúp bạn ...
Hướng dẫn parse html python - phân tích cú pháp html python
Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Dai Phong (you can also view the original English article) Trong một bài viết trước, tôi ...
Hướng dẫn python networkx - mạng pythonx
Hướng dẫn này có thể giúp bạn bắt đầu làm việc với NetworkX.Tạo biểu đồ#Tạo một biểu đồ trống không có nút và không có cạnh.>>> import networkx as ...
Tuyển sinh đại học mở 2023
Với 2 cơ sở là Đại học mở Hà Nội và Đại học mở Thành Phố Hồ Chí Minh. Năm 2022, mức Học phí đại học Mở trung bình là 16 triệu đồng một năm. Đây ...
Hướng dẫn google sheets bar chart different colors - biểu đồ thanh google trang tính các màu khác nhau
Google Sheets hiện hỗ trợ màu sắc tùy chỉnh của các điểm dữ liệu riêng lẻ trong các biểu đồ của nó. Chỉ cần học cách thay đổi màu điểm dữ liệu ...
Hướng dẫn lzma python - con trăn lzma
Mới trong phiên bản 3.3.Mã nguồn: lib/lzma.py Lib/lzma.pyMô -đun này cung cấp các lớp và chức năng tiện lợi để nén và giải nén dữ liệu bằng thuật toán nén ...
April 26 2023 holiday
Holiday nameHoliday locationHoliday type World Intellectual Property Day - International (Products & Technology ) Secretaries Day Colombia Observance Day of Remembrance of the Chernobyl ...
Hướng dẫn google cloud translation api python - google dịch thuật toán đám mây api python
Giữ tổ chức với các bộ sưu tập lưu và phân loại nội dung dựa trên sở thích của bạn. Save and categorize content based on your preferences. Trang này cung cấp tài ...
Hướng dẫn what is difference == and === in javascript? - sự khác biệt == và === trong javascript là gì?
= Trong javascript là gì?Bằng (=) là toán tử gán, đặt biến ở bên trái của = với giá trị của biểu thức ở bên phải của nó. Nhà điều hành này chỉ định ...
Hướng dẫn dùng print directory trong PHP
Giới thiệuTrong phát triển ứng dụng, nhiều khi chúng ta cần làm việc với file (tập tin) và folder (thư mục). Một số thao tác phổ biến có thể kể đến như ...
Hướng dẫn php class to array - lớp php thành mảng
Chỉ cần đánh máy nóNội dung chính ShowShowLàm cách nào để chuyển đổi một chuỗi thành một mảng trong PHP?Làm thế nào để bạn chuyển đổi một phần tử ...
Hướng dẫn how to link excel to excel - cách liên kết excel với excel
Trên một bảng tính, nhấp vào ô nơi bạn muốn tạo một liên kết.Bạn cũng có thể chọn một đối tượng, chẳng hạn như hình ảnh hoặc một phần tử trong ...
Backdrop tất niên 2023 vector
1.Hình ảnh Thiệp Mời Tất Niên PNG Và Vector, Tải Xuống Miễn Phí Pngtree cung cấp cho bạn 75285 vector, png, psd và biểu tượng miễn phí hình ảnh Thiệp Mời ...
Hướng dẫn how to add an average line in google sheets - cách thêm một dòng trung bình trong google trang tính
Hướng dẫn này cung cấp một ví dụ từng bước về cách tạo biểu đồ sau với một dòng trung bình trong Google Sheets:Bước 1: Nhập dữ liệuĐầu tiên, hãy để ...
Hướng dẫn how to connect python code with website - cách kết nối mã python với trang web
Ngôn ngữ Python sử dụng CGI để thực thi trên trang web. Bạn phải nhập thư viện CGITB cho ngôn ngữ Python để thực thi và hiển thị kết quả trong trình duyệt ...