Sự khác nhau giữa type(obj)
và obj.__class__
là gì? Có bao giờ một khả năng của type(obj) is not obj.__class__
?Sự khác biệt giữa loại (obj) và obj .__ class__
Tôi muốn viết một hàm hoạt động chung trên các đối tượng được cung cấp, sử dụng giá trị mặc định là 1 trong cùng loại với tham số khác. Biến thể nào, # 1 hoặC# 2 bên dưới, sẽ làm điều đúng?
def f(a, b=None):
if b is None:
b = type(a)(1) # #1
b = a.__class__(1) # #2
Sự trớ trêu lớn nhất là bình luận của yairchu bây giờ có cùng một vấn đề vì chúng đã chuyển đổi định dạng ..: P –
Sẽ không làm tổn thương để hiển thị * cách chúng cư xử khác nhau, và cũng có thể * tại sao *. Chỉ cần nói * khi * họ cư xử khác nhau nghe có vẻ là một câu trả lời lười biếng, ngay cả khi chính xác. – MestreLion
đáng nói đến đây chỉ là vấn đề trong Python 2. Trong Python 3 cả ba biểu thức sẽ là True. – Bob