Tôi gặp sự cố khi tìm mẹo if __name == '__main__'
để hoạt động trong môi trường IPython, Spyder. Tôi đã thử mọi phương pháp được đưa ra trong chủ đề này: if __name__ == '__main__' in IPythonnếu __name__ == '__main__' không hoạt động ipython
Dưới đây là các module siêu đơn giản của tôi
Module1.py
Class UnitTest():
print 'Mod1 UnitTest!'
if __name__ == '__main__':
UnitTest()
Module2.py
import Module1
Class UnitTest():
print 'Mod2 UnitTest!'
if __name__ == '__main__':
UnitTest()
Vì vậy, tôi chạy Module2.py và tôi luôn thấy cả hai hình ảnh Mod2 UnitTest
và Mod1 UnitTest
được in. Đây là những thực hiện trong một hạt nhân IPython. Tôi chỉ muốn thông báo Mod2 UnitTest
hiển thị.
Có ý tưởng gì không?
Bạn đang sử dụng các lớp học thay vì chức năng. Mã trong khai báo lớp được chạy lúc nhập. – Kevin
Yup. Xem câu trả lời của tôi dưới đây. Sai lầm hoàn toàn ngu ngốc không nhận ra mã trong khai báo lớp được chạy vào thời gian nhập !!! – AZhao