Các id()
chức năng sẵn có cho ...Sự khác biệt giữa "a là b" và "id (a) == id (b)" trong Python là gì?
một số nguyên (hoặc số nguyên dài) mà được đảm bảo là duy nhất và liên tục cho đối tượng này trong suốt cuộc đời của nó.
Nhà điều hành is
, thay vào đó, mang đến cho ...
nhận dạng đối tượng
Vậy tại sao là nó có thể có hai đối tượng có cùng id
nhưng trở False
một is
kiểm tra? Dưới đây là một ví dụ:
>>> class Test():
... def test():
... pass
>>> a = Test()
>>> b = Test()
>>> id(a.test) == id(b.test)
True
>>> a.test is b.test
False
Một ví dụ đáng lo ngại hơn: (tiếp tục ở trên)
>>> b = a
>>> b is a
True
>>> b.test is a.test
False
>>> a.test is a.test
False
Tuy nhiên:
>>> new_improved_test_method = lambda: None
>>> a.test = new_improved_test_method
>>> a.test is a.test
True
Nó không giống như tôi _need_ này cho một chương trình thực tế hoặc metaclass jedi tâm lừa, tâm trí bạn. Tôi đã chán trên tàu và tôi đã thử rằng :) – badp
Tôi nghĩ rằng câu hỏi quan trọng là lý do tại sao 'a.test là a.test' là Sai. Một khi bạn biết rằng phần còn lại sẽ có ý nghĩa ... – Skilldrick
Tràn dầu là tốt và dandy và nó đang đến một thành phố gần bạn thật sớm!Có lẽ bạn nên tổ chức một số có được với nhau để ăn mừng sắp tới của nó! – badp