Trình tạo Python dừng
Sự định nghĩa. Trình tạo giống như một hàm bình thường tạo ra một loạt các giá trị bằng cách sử dụng từ khóa năng suất. Nó trả về một đối tượng tại một thời điểm. Nó sử dụng nội bộ một iterator. Để truy cập phần tử tiếp theo, hàm next() được sử dụng hoặc chúng ta có thể sử dụng nó cho một vòng lặp. Nếu chúng tôi cố gắng truy cập giá trị bên ngoài phạm vi, nó sẽ gây ra lỗi StopIteration Show Chúng ta sẽ xem một số ví dụ để hiểu rõ hơn Bán tại. chức năng tạo cho phạm vi giá trị def range_fun ( n ): Bán tại. Hàm tạo chuỗi Fibonacci def fib_fun ( n ): Bán tại. Hàm tạo để tạo phạm vi giá trị cho giá trị bắt đầu và kết thúc def my_range ( bắt đầu , end): Bán tại. Trình tạo để nhân từng số (ít hơn một số) với một số def gen_mulby_num (max,num): Bán tại. Trình tạo để tìm khối cho phạm vi giá trị def gen_mulby_num (max,num): Bán tại. nhiều máy phát điện. tìm bình phương của các số chẵn được tạo ra từ một số Máy phát điện 1. tạo ra các giá trị chẵn từ một số nhất định Máy phát điện 2. tạo số vuông từ các giá trị của trình tạo1 def gen_even ( m ): Bán tại. Nhiều máy phát điện. tạo chuỗi fibonacci và thêm giá trị 10 cho mỗi số Máy phát điện1. tạo chuỗi fibonacci từ một số đã cho Máy phát điện2. thêm mỗi số bằng 10 từ trình tạo1 def gen_fib ( n ): hiểu máy phát điệnKhả năng hiểu trình tạo tương tự như khả năng hiểu danh sách trong đó danh sách sử dụng dấu ngoặc vuông; Bán tại nums = ( i cho i in range(10)) Sự khác biệt giữa Máy phát điện và chức năng bình thường
Phần kết luậnTrình tạo rất hữu ích khi chúng tôi đang xử lý dữ liệu lớn/lớn. Tại một thời điểm nhất định, nó chỉ chứa một phần dữ liệu duy nhất chứ không phải toàn bộ dữ liệu. Khái niệm máy phát điện được coi là một khái niệm nâng cao trong python Năng suất có dừng cho vòng lặp Python không?yield trong Python có thể được sử dụng giống như câu lệnh return trong một hàm. Khi làm như vậy, hàm thay vì trả về đầu ra, nó trả về một trình tạo có thể được lặp lại khi. Sau đó, bạn có thể lặp qua trình tạo để trích xuất các mục. Việc lặp lại được thực hiện bằng vòng lặp for hoặc đơn giản là sử dụng hàm next() .
Năng suất có tăng StopIteration không?Đã đạt đến điểm năng suất và giá trị năng suất được trả về. Khung được trả về từ; . StopIteration is raised.
Làm cách nào để sử dụng trình tạo trong Python?Tạo trình tạo trong Python khá đơn giản. Nó tương tự như hàm thông thường được xác định bởi từ khóa def và sử dụng từ khóa suất thay vì trả về. . danh sách = [1,2,3,4,5,6,7] # Danh sách hiểu z = [x**3 cho x trong danh sách] # Biểu thức trình tạo a = (x**3 cho x trong danh sách) in(a) in(z) Bạn có thể lặp qua trình tạo bằng Python không?Bạn cần gọi next() hoặc lặp qua đối tượng trình tạo để truy cập các giá trị do biểu thức trình tạo tạo ra. Khi không có giá trị tiếp theo trong đối tượng trình tạo, một ngoại lệ StopIteration sẽ được đưa ra. Có thể sử dụng vòng lặp for để lặp lại đối tượng trình tạo . |