Tôi đã nhìn thấy rất nhiều ví dụ về những người giải nén tất cả các lớp từ một mô-đun, thường cái gì đó như:Làm cách nào để có danh sách tất cả các lớp trong mô-đun hiện tại bằng Python?
# foo.py
class Foo:
pass
# test.py
import inspect
import foo
for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj
ảnh vui nhộn.
Nhưng tôi không thể tìm hiểu cách nhận tất cả các lớp học từ mô-đun hiện tại.
# foo.py
import inspect
class Foo:
pass
def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj
# test.py
import foo
foo.print_classes()
Đây có thể là điều thực sự rõ ràng, nhưng tôi chưa thể tìm thấy bất kỳ thứ gì. Ai có thể giúp tôi không?
Có gì sai khi đọc nguồn cho '" lớp "'? Tại sao nó sẽ không hoạt động? –
Tôi đoán câu hỏi là về việc muốn tự động hóa một số tác vụ, vì vậy điều quan trọng là nó được thực hiện theo chương trình. Có lẽ người hỏi nghĩ rằng làm điều đó bằng tay, bằng cách đọc mã nguồn bằng mắt, có thể lặp đi lặp lại, dễ bị lỗi hoặc tốn thời gian. –
Có một [PEP] (http://www.python.org/dev/peps/pep-3130/) cho một tính năng như thế này, nhưng nó đã bị từ chối. –