Có thể bằng Python để thực hiện các thay đổi đối với mã mà bạn hiện đang gỡ lỗi và tiếp tục mà không phải khởi động lại mọi thứ không? (Con đường tôi có thể trong C#, ví dụ.)Mọi môi trường Python có hỗ trợ chỉnh sửa và tiếp tục không?
Trả lời
Bạn có đầy đủ sức mạnh của người phiên dịch trong tầm tay của bạn với pdb
, sử dụng
import pdb
pdb.set_trace()
Từ đó bạn có thể xác định và tạo các đối tượng mới, xác định lại hiện những cái, sửa đổi và tải lại các mô-đun, v.v. Cú pháp là simalar thành gdb
. Nếu bạn đang sử dụng ipython, ipdb
có thể là lựa chọn đẹp hơn hoặc bạn có thể tự động gọi trình gỡ rối với hàm ma thuật ipython %debug
.
Bạn có thể đặt giá trị mới cho tên, nhưng vẫn có thể có các địa điểm tham chiếu đến giá trị cũ. Kiểm tra phiên dưới đây vào vỏ python:
>>> def foo(): print 'Foo'
...
>>> bar = foo
>>>
>>> foo()
Foo
>>> bar()
Foo
>>>
>>> def foo(): print 'Bar'
...
>>> foo()
Bar
>>> bar()
Foo
>>>
>>> def call(): foo()
...
>>> call()
Bar
>>>
>>>
>>> def foo(): print 'Foo reloaded!'
...
>>>
>>> foo()
Foo reloaded!
>>> bar()
Foo
>>>
>>> call()
Foo reloaded!
>>>
Chức năng call
đề cập đến mới foo
, nhưng bar
được gán giá trị của cái cũ foo
và điều đó không thay đổi khi bạn sử dụng lại tên foo
.
Bạn có yêu cầu hỗ trợ biên tập viên không? Python-mode in Emacs có thể chạy "quá trình python kém" mà bạn có thể gửi các khối mã khi bạn chơi với chúng. Hoặc bạn có thể làm điều này trực tiếp trong trình bao Python, như được hiển thị ở trên.
- 1. Chỉnh sửa và tiếp tục trong IntelliJ Idea?
- 2. Eclipse: Chỉnh sửa nguồn và tiếp tục gỡ lỗi
- 3. Trình chỉnh sửa XML hỗ trợ 1,1
- 4. Trình chỉnh sửa mã có hỗ trợ lesscss?
- 5. Tại sao không chỉnh sửa và tiếp tục hoạt động trên CLR x64?
- 6. Mọi trình duyệt có hỗ trợ tất cả unicode không?
- 7. Có ngôn ngữ nhanh hỗ trợ tính năng tiếp tục di động không?
- 8. PySide có hỗ trợ Python 3 không?
- 9. Trình chỉnh sửa nào có vi mô thi đua và hỗ trợ hightlighting delphi?
- 10. Chỉnh sửa và Tiếp tục không hoạt động trong VS 2010/ASP.Net MVC 2
- 11. Tập lệnh python có thể liên tục thay đổi biến môi trường Windows không? (thanh lịch)
- 12. Có cấu trúc dữ liệu cho DAG hỗ trợ chỉnh sửa hiệu quả không?
- 13. Hỗ trợ python Vim với python không phải hệ thống
- 14. Grails môi trường tùy chỉnh
- 15. Tại sao bạn không thể chỉnh sửa và tiếp tục gỡ lỗi khi có biểu thức Lambda trong phương thức?
- 16. OptaPlanner có hỗ trợ tối ưu hóa và hạn chế về các biến liên tục không?
- 17. Báo cáo Javaagent "redefineClasses không được hỗ trợ trong môi trường này"
- 18. Sản lượng python có hàm ý tiếp tục không?
- 19. Facebook có giảm hỗ trợ cho Python không?
- 20. Có hỗ trợ tập lệnh nào trên Windows Phone không?
- 21. Trình chỉnh sửa Sublime Text 2 có hỗ trợ xem trước HTML và CSS trong thời gian thực không?
- 22. Cài đặt môi trường python/sphinx trên windows?
- 23. Chỉnh sửa và tiếp tục trong các dự án web ASP.NET
- 24. Cách "Chỉnh sửa và tiếp tục" hoạt động trong Visual Studio?
- 25. CMake có hỗ trợ Python3 không?
- 26. Hỗ trợ Mã VS2010 có hỗ trợ nUnit không?
- 27. Hỗ trợ Google App Engine và Django
- 28. Latex - \ multicolumn trong môi trường căn chỉnh *
- 29. có môi trường ảo cho node.js không?
- 30. Rails 3.2 Môi trường phát triển nguồnMaps hỗ trợ cho JavaScript
Câu trả lời hay, nhưng tôi khuyên bạn nên sử dụng pdb thông qua IPython, làm cho nó mạnh hơn (đánh dấu cú pháp, tự động gỡ lỗi về ngoại lệ, v.v.) (http://ipython.org/ipython-doc/stable/interactive /tutorial.html#debugging). – EOL