Trong python, làm cách nào để kiểm tra xem một đối tượng có phải là đối tượng tạo không?
Đang thử cái này -
>>> type(myobject, generator)
đưa ra lỗi -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'generator' is not defined
(Tôi biết tôi có thể kiểm tra xem đối tượng có next
phương thức để nó là trình tạo không, nhưng tôi muốn một số cách sử dụng để tôi có thể xác định loại của bất kỳ đối tượng nào, không chỉ máy phát điện.)
from types import GeneratorType;type(myobject, GeneratorType)
sẽ cung cấp cho bạn kết quả thích hợp cho các đối tượng của lớp 'trình tạo'. Nhưng như Daenyth ngụ ý, đó không hẳn là con đường đúng đắn.
__next__
, bạn thực sự chấp nhận bất kỳ trình lặp nào, không chỉ các trình tạo - rất có thể là những gì bạn muốn.