Trình tạo trong Python là gì và Cách sử dụng chúng?



Tìm hiểu trình tạo trong Python là gì cùng với những ưu điểm. Đồng thời tìm hiểu cách tạo và sử dụng chúng cùng với các trường hợp sử dụng khác nhau.

Tạo các tệp lặp hoặc đối tượng cho phép bước qua chúng được coi là một nhiệm vụ nặng nề. Nhưng, trong , việc thực hiện nhiệm vụ khó khăn này trở nên thực sự suôn sẻ. Vì vậy, hãy tiếp tục và xem xét kỹ hơn Trình tạo bằng Python.

Đây là danh sách tất cả các chủ đề được đề cập trong bài viết này:





Hãy bắt đầu. :)

Trình tạo trong Python là gì?

Trình tạo về cơ bản là các hàm trả về các đối tượng hoặc mục có thể duyệt. Các chức năng này không tạo ra tất cả các mục cùng một lúc, thay vào đó chúng sản xuất từng mục một và chỉ khi được yêu cầu. Bất cứ khi nào được bao gồm để lặp qua một tập hợp các mục, một hàm trình tạo được chạy. Máy phát điện cũng có một số ưu điểm.



Ưu điểm của việc sử dụng Máy phát điện

  • Nếu không có Trình tạo trong Python, việc tạo các tệp lặp là cực kỳ khó khăn và dài dòng.

  • Trình tạo dễ triển khai vì chúng tự động triển khai __iter __ (), __next __ () và StopIteration mà nếu không, cần phải được chỉ định rõ ràng.



  • Bộ nhớ được lưu khi các mặt hàng được sản xuất theo yêu cầu, không giống như bình thường . Thực tế này trở nên rất quan trọng khi bạn cần tạo một số lượng lớn các trình vòng lặp. Đây cũng được coi là ưu điểm lớn nhất của máy phát điện.

  • Có thể được sử dụng để sản xuất vô số mặt hàng.

  • Chúng cũng có thể được sử dụng để chuyển một số hoạt động

Chức năng bình thường so với Chức năng của trình tạo:

Trình tạo trong Python được tạo giống như cách bạn tạo sử dụng từ khóa 'def'. Tuy nhiên, các hàm của Bộ tạo sử dụng từ khóa lợi nhuận thay vì trả về. Điều này được thực hiện để thông báo cho trình thông dịch rằng đây là một trình lặp. Không chỉ điều này, các hàm Generator được chạy khi hàm next () được gọi chứ không phải theo tên của chúng như trong trường hợp các hàm thông thường. Hãy xem xét ví dụ sau để hiểu rõ hơn:

THÍ DỤ:

def func (a): nhường a a = [1,2,3] b = func (a) next (b)

ĐẦU RA: [1, 2, 3]

Như bạn có thể thấy, trong đầu ra ở trên, hàm func () đang sử dụng từ khóa lợi nhuận và hàm tiếp theo để thực thi nó. Tuy nhiên, đối với chức năng bình thường, bạn sẽ cần đoạn mã sau:

THÍ DỤ:

def func (a): trả về a = [1,2,3] func (a)

ĐẦU RA: [1, 2, 3]

Nếu bạn nhìn vào ví dụ trên, bạn có thể tự hỏi tại sao lại sử dụng hàm Generator khi hàm bình thường cũng trả về cùng một đầu ra. Vì vậy, hãy tiếp tục và xem cách sử dụng Trình tạo trong Python.

Sử dụng các chức năng của Máy phát điện:

Như đã đề cập trước đó, Trình tạo trong Python tạo ra từng lần một. Hãy xem ví dụ sau:

THÍ DỤ:

def myfunc (a): while a> = 3: bring a a = a + 1 b = myfunc (a) print (b) next (b)

Khi bạn thực thi hàm sau, bạn sẽ thấy kết quả sau:

ĐẦU RA: 4

Ở đây, một đối tượng có thể lặp lại đã được trả về thỏa mãn điều kiện while. Sau khi thực hiện, quyền điều khiển được chuyển cho người gọi. Trong trường hợp cần nhiều mục hơn, hàm tương tự cần được thực thi lại bằng cách gọi hàm next ().

tiếp theo (b)

ĐẦU RA: 5

Trong các lần thực thi tiếp theo, hàm sẽ trả về 6,7, v.v. Các hàm của trình tạo trong Python thực thi các phương thức __iter __ () và __next __ () một cách tự động. Do đó, bạn có thể lặp lại các đối tượng chỉ bằng cách sử dụng phương thức next (). Khi quá trình tạo mục kết thúc, các chức năng của Bộ tạo triển khai StopIteration nội bộ mà không cần phải lo lắng cho người gọi. Đây là một ví dụ khác về điều này:

THÍ DỤ:

a = 2 def myfunc (a): while a> = 0: bring a a - = 1 b = myfunc (a) print (b) next (b)

ĐẦU RA:

StopIteration-Generators trong Python-EdurekaHình ảnh trên cho thấy việc thực hiện chương trình của chúng tôi số lần cần thiết. Nếu bạn cố gắng gọi lại hàm tiếp theo, nó sẽ trả về một thông báo mô tả StopIteration đã được thực hiện. Nếu bạn cố gắng làm điều này với các hàm bình thường, các giá trị trả về sẽ không thay đổi hoặc lặp lại. Hãy xem ví dụ dưới đây:

THÍ DỤ:

def z (): n = 1 năng suất n n = n + 3 năng suất n p = z () tiếp theo (p)

ĐẦU RA:

Máy phát điện có vòng lặp:

Trong trường hợp bạn muốn thực hiện cùng một chức năng cùng một lúc, bạn có thể sử dụng vòng lặp ‘for’. Vòng lặp này giúp lặp lại các đối tượng và sau tất cả các lần triển khai, nó sẽ thực thi StopIteration.

THÍ DỤ:

def z (): n = 1 nhường n n = n + 3 nhường n cho x in z (): print (x)

ĐẦU RA:

một
4

Bạn cũng có thể chỉ định các biểu thức để tạo các đối tượng có thể lặp lại.

Biểu thức máy phát điện:

Bạn cũng có thể sử dụng các biểu thức cùng với vòng lặp for để tạo ra các trình vòng lặp. Điều này thường làm cho việc lặp lại thế hệ trở nên dễ dàng hơn nhiều. Biểu thức trình tạo giống với phần hiểu danh sách và giống như hàm lambda , biểu thức trình tạo tạo ra các hàm trình tạo ẩn danh.

Hãy xem ví dụ dưới đây:

THÍ DỤ:

a = range (6) print ('Danh sách hiểu rõ', end = ':') b = [x + 2 for x in a] print (b) print ('Generator expression', end = ': n') c = (x + 2 cho x trong a) print (c) cho y trong c: print (y)

ĐẦU RA:

Toàn bộ danh sách: [2, 3, 4, 5, 6, 7]

Biểu thức trình tạo:

2
3
4
5
6

Như bạn có thể thấy, trong đầu ra ở trên, biểu thức đầu tiên là một danh sách dễ hiểu được chỉ định trong dấu ngoặc []. Khả năng hiểu danh sách tạo ra danh sách đầy đủ các mục cùng một lúc. Tiếp theo là biểu thức trình tạo trả về các mục giống nhau nhưng mỗi lần một mục. Nó được chỉ định bằng cách sử dụng dấu ngoặc ().


Máy phát điệncác chức năng cũng có thể được sử dụng trong các chức năng khác.Ví dụ:

biến đối tượng thành mảng php

THÍ DỤ:

a = range (6) print ('Generator expression', end = ': n') c = (x + 2 for x in a) print (c) print (min (c))

ĐẦU RA:

Biểu thức trình tạo
2

Chương trình trên in ra giá trị min khi biểu thức trên áp dụng cho các giá trị của a.

Trường hợp sử dụng:

Hãy để chúng tôi sử dụng Máy phát điện trong đến:

  • Tạo chuỗi Fibonacci
  • Tạo số

Tạo chuỗi Fibonacci:

Chuỗi Fibonacci như chúng ta đều biết là một chuỗi số trong đó mỗi số là tổng của hai số đứng trước. Hai số đầu tiên là 0 và 1. Đây là chương trình tạo để tạo chuỗi Fibonacci:

THÍ DỤ:

def fibo (): đầu tiên, thứ hai = 0,1 trong khi True: nhường đầu tiên đầu tiên, thứ hai = thứ hai, thứ nhất + thứ hai cho x trong fibo (): nếu x> 50: ngắt in (x, end = '')

ĐẦU RA:

0 1 1 2 3 5 8 13 21 34

Kết quả ở trên hiển thị chuỗi Fibonacci có giá trị nhỏ hơn 50. Bây giờ chúng ta hãy xem cách tạo danh sách các số.

Tạo số:

Trong trường hợp bạn muốn tạo số danh sách được chỉ định, bạn có thể thực hiện bằng cách sử dụng các hàm của trình tạo. Hãy xem ví dụ sau:

THÍ DỤ:

a = range (10) b = (x for x in a) print (b) for y in b: print (y)

ĐẦU RA:

0
một
2
3
4
5
6
7
số 8
9

THÍ DỤ:

a = range (2.10,2) b = (x for x in a) print (b) for y in b: print (y)

ĐẦU RA:


2
4
6
số 8

Chương trình trên đã trả về các số chẵn từ 2 đến 10. Điều này đưa chúng ta đến phần cuối của bài viết này về Trình tạo trong Python. Tôi hy vọng bạn đã hiểu tất cả các chủ đề.

Đảm bảo rằng bạn luyện tập nhiều nhất có thể và hoàn nguyên trải nghiệm của mình.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog “Trình tạo trong Python” này và chúng tôi sẽ liên hệ lại với bạn sớm nhất có thể.

Để có kiến ​​thức chuyên sâu về Python cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký tham gia trực tiếp với hỗ trợ 24/7 và truy cập trọn đời.