Trình tạo css python
là một đối tượng có thể lặp lại (được lặp lại). Nó được sử dụng để phản ánh dữ liệu vùng chứa để làm cho nó hoạt động giống như một đối tượng có thể lặp lại. You could you used one vài đối tượng có thể lặp lại mỗi ngày. chuỗi, list and dictionary to set name for a number
Một iterator được định nghĩa bởi một lớp thực hiện các Giao thức Iterator . Giao thức này chỉ ra hai phương pháp trong lớp học. Quay lại. Tại sao bạn thậm chí muốn tạo ra iterators? Tiết kiệm thời gian không bộ nhớ Iterator không tính toán giá trị của mỗi mục khi khởi tạo. Chúng chỉ tính toán cho nó khi bạn yêu cầu nó. Đây được gọi là đánh giá lười biếng. Đánh giá lười biếng thực sự hữu ích khi bạn có một bộ dữ liệu cực lớn để tính toán. Nó cho phép bạn sử dụng dữ liệu ngay lập tức, trong khi cả bộ dữ liệu đang được tính toán Giả sử chúng ta muốn nhận tất cả các nguyên tố số nhỏ hơn một số cực đại Trước đó, chúng tôi xác định chức năng kiểm tra nếu một số là số nguyên tố def check_prime(number): for divisor in range(2, int(number ** 0.5) + 1): if number % divisor == 0: return False return True Sau đó, chúng ta định nghĩa lớp bao gồm phương thức class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()5 và class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()6 class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__() class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()9 được khởi tạo với giá trị lớn nhất. If the integer integer to continue by large more than class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()0, iterator will boost a exception class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()1, end iterator Khi chúng ta yêu cầu các phần tử tiếp theo trong Iterator, nó sẽ tăng Bằng cách sử dụng một Iterator, chúng ta không tạo ra một danh sách các nguyên tố trong bộ nhớ của chúng ta. Thay vào đó, chúng tôi sẽ tạo ra nguyên tố tiếp theo mỗi khi được yêu cầu Please try it primes = Primes(100000000000) print(primes) for x in primes: print(x) --------- <__main__.Primes object at 0x1021834a8> 2 3 5 7 11 ... Mỗi lần lặp lại của đối tượng Iterator chỉ có thể được lặp lại qua một lần . Nếu bạn cố lặp lại Bây giờ chúng ta đã biết iterator là gì và làm thế nào để tạo ra chúng, tiếp theo là về máy phát điện Máy phát điệnNhớ lại rằng hàm tạo cho phép chúng ta tạo ra các iterator theo một cách đơn giản hơn Trình tạo giới thiệu câu lệnh Do đó, chúng ta đã tiết kiệm được trạng thái của chức năng. Trong lần tiếp theo chức năng được gọi, vẫn tiếp tục từ nơi dừng lại, cùng với các giá trị biến mà nó đã có trước khi mang lại kết quả Nếu chúng ta chuyển _____19 iterator thành generator, it will same as after class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()1 Bây giờ đó là Pythonic. Liệu ta có thể làm tốt hơn không? Qua đó, chúng ta có thể sử dụng Generator Expressions, được giới thiệu với PEP 289. Đây là danh sách hiểu tương đương của trình tạo. Nó hoạt động chính xác giống như hiểu, nhưng biểu thức được đặt trong_______61 và ngược lại với Các biểu thức sau đây có thể thay thế chức năng trình tạo ở trên class Primes: def __init__(self, max): self.max = max self.number = 1 def __iter__(self): return self def __next__(self): self.number += 1 if self.number >= self.max: raise StopIteration elif check_prime(self.number): return self.number else: return self.__next__()4 Đây là khả năng của trình tạo bằng Python Tóm tắt
|