Tại sao ví dụ dưới đây chỉ hoạt động nếu biến số _
vô ích được tạo?Tại sao tôi cần phải giữ một biến trỏ đến QWidget của tôi?
Biến số _
được chỉ định và không bao giờ được sử dụng. Tôi sẽ giả định một trình biên dịch tốt sẽ tối ưu hóa và thậm chí không tạo ra nó, thay vào đó nó làm cho một sự khác biệt.
Nếu tôi xóa _ =
và để lại chỉ Test()
, thì cửa sổ được tạo, nhưng nó nhấp nháy và biến mất ngay lập tức và python bị treo vĩnh viễn.
Đây là mã:
import sys
from PyQt4 import QtGui
class Test(QtGui.QWidget):
def __init__(self):
super().__init__()
self.show()
app = QtGui.QApplication(sys.argv)
_ = Test()
sys.exit(app.exec_())
Bạn có nghĩa là 'Test()' thay vì 'Example()'? –
Nếu một đối tượng Python không được tham chiếu, nó là rác được thu thập, điều này sẽ giải thích tại sao cửa sổ nhấp nháy sau đó biến mất. –
Vì vậy, một biến mà chương trình của bạn sẽ không hoạt động mà không có "vô dụng"? – kindall