Có thư viện hay ma thuật python cho phép tôi thực hiện tất cả các chức năng trong một tệp mà không gọi chúng một cách rõ ràng. Một cái gì đó rất giống với những gì pytest đang làm - chạy tất cả các chức năng bắt đầu với 'test _...' mà không bao giờ đăng ký chúng ở bất cứ đâu.Có cách nào trong python để thực hiện tất cả các chức năng trong một tập tin mà không gọi chúng một cách rõ ràng?
Ví dụ giả sử tôi có một a.py file:
def f1():
print "f1"
def f2():
print "f2"
và giả sử tôi có tập tin - tập tin chính của tôi - main.py:
if __name__ == '__main__':
some_magic()
nên khi tôi gọi:
python main.py
Kết quả sẽ là:
f1
f2
Có vẻ như bạn có thể quan tâm đến [metaprogramming] (http://python-3-patterns-idioms-test.readthedocs.org/en/latest/Metaprogramming.html). Tôi chưa bao giờ đi sâu vào nó vì vậy tôi sẽ là người cuối cùng cho bạn biết cách tiếp cận nó. – Makoto
Bạn có thể sử dụng nội tâm để tìm tất cả các chức năng trong các từ điển địa lý và toàn cầu, có thể bằng cách quay trở lại qua ngăn xếp cuộc gọi để tìm hình cầu/người dân địa phương của người gọi. Nhìn vào mô-đun 'kiểm tra' trong thư viện chuẩn. – cdarke