Tôi có một mảng 2D gồm các khối khác nhau, tất cả đều được kế thừa từ Chặn. Tôi muốn kiểm tra xem khối mà tôi nhấp vào là một khối loại Dirt, như thế này:Sử dụng Python `isinstance` có đúng không?
clickedblock = getClickedBlock()
if isinstance(clickedblock, Dirt):
place a block
else:
don't place a block
Tôi đã nghe nói rằng isinstance
là xấu, và nên tránh vì nó tạo ra dĩa trong mã. Những gì thời gian sẽ isinstance
là tốt để sử dụng?
Một giải pháp rườm rà khác cho vấn đề của tôi là có một trường Block gọi là 'id' và sau đó kiểm tra xem nó có bằng một số hằng số có nghĩa là Dirt hay không. Nhưng điều đó nghe có vẻ khá tệ và dễ bị sai lầm hơn là đơn giản isinstance
.
@DietrichEpp Nói chung? : p Tôi không đồng ý. – keyser
@DietrichEpp Đó là lý do tại sao tôi hỏi ở đây để xác nhận. –
@Keyser: Đó chính xác là quan điểm của tôi. Bạn không đồng ý, nhưng bạn không cho tôi biết tại sao bạn không đồng ý, vì vậy bạn không cho người khác cơ hội tạo nên tâm trí của chính họ nếu họ chọn. –