Tôi đang tạo một mô-đun mà tôi muốn coi là một vùng chứa tĩnh của các đối tượng. Các đối tượng này thuộc loại lớp mà tôi đã xác định. Tôi muốn có thể nhập mô-đun này và sau đó lặp lại các đối tượng bên trong. Dưới đây là một số mã giải thích những gì tôi muốn nói:Có thể tạo mô-đun lặp lại được bằng Python không?
example.py
class MyExampleClass(object):
def __init__(self, var1, var2, var3):
self.var1 = var1
self.var2 = var2
self.var3 = var3
self.var4 = var4
instanceA = MyExampleClass(1, 2, 3, 4)
instanceB = MyExampleClass(4, 3, 6, 7)
instanceC = MyExampleClass(5, 3, 4, 5)
# something like this
def __iter__():
return (instanceA, instanceB, instanceC)
Sau đó, tôi muốn để có thể nhập khẩu này và sử dụng nó như một enum:
import example
for e in example:
# do stuff with e
Is điều này có thể làm trong Python? Hoặc tôi có phải nhập danh sách từ trong gói example
không?
example.py
objects = (instanceA, instanceB, instanceC)
và sau đó
import example
for e in example.objects:
# do stuff with e
Giải pháp thứ hai chắc chắn hoạt động. Tại sao không sử dụng? – mdurant
hoặc nếu bạn không thích phiên bản đó vì lý do nào đó, tương đương 'từ các đối tượng nhập ví dụ; cho e trong các đối tượng: '... –
Bạn có thể làm điều đó, nếu bạn thêm một số đối tượng vào sys.modules có API thích hợp để lặp lại. Bạn không chắc chắn liệu nó có cần được bắt nguồn từ 'ModuleType.' – schlenk