2016-08-22 12 views
6

Tôi có một hàm nhận một số đối số, cộng với một số đối số tùy chọn. Trong đó, các hành động được thực phụ thuộc vào việc các đối số tùy chọn c tràn ngập:FutureWarning khi so sánh một đối tượng NumPy với "None"

def func(a, b, c = None): 

    doStuff() 

    if c != None: 
     doOtherStuff() 

Nếu c không được thông qua, sau đó làm việc này tốt. Tuy nhiên, trong ngữ cảnh của tôi, nếu c được thông qua, nó sẽ luôn là một mảng numpy. Và so sánh numpy mảng để None mang lại những cảnh báo sau đây:

FutureWarning: comparison to `None` will result in an elementwise object comparison in the future. 

Vì vậy, cách sạch nhất và chung nhất để kiểm tra hay không c đã được thông qua hay không mà không cần so với None là gì?

Trả lời

11

Sử dụng if c is not None để thay thế. Ngoài việc tránh cảnh báo, đây là generally considered best-practice.

+0

Chỉ cần lưu ý rằng trong ngữ cảnh gốc, 'if c không phải là None:' là thích hợp. –

+0

Cảm ơn Tim - đã cập nhật. – jakevdp

Các vấn đề liên quan