2010-01-11 18 views
25

Khi tôi chạy script python của tôi, tôi nhận được cảnh báo sauSets mô-đun bị phản đối cảnh báo

DeprecationWarning: the sets module is deprecated 

Làm thế nào để sửa lỗi này?

+0

Phiên bản Python nào? –

+0

Phiên bản Python 2.6.4 – Dave

Trả lời

33

Ngừng sử dụng mô-đun sets hoặc chuyển sang phiên bản cũ của trăn mà nó không được dùng nữa.

Theo pep-004, sets không còn được dùng nữa kể từ v2.6, được thay thế bằng cách xây dựng trong set and frozenset types.

+4

+1: khắc phục cảnh báo bằng cách khắc phục sự cố gây ra cảnh báo. Nó có vẻ rất đơn giản. –

+1

Nó chỉ có vẻ đơn giản nếu bạn biết rằng có một được xây dựng trong thay thế nó. Tại sao cảnh báo lại không nói vậy !? – GreenAsJade

2

Bạn không cần phải nhập mô-đun sets để sử dụng chúng, chúng nằm trong vùng tên dựng sẵn.

4

Sử dụng builting set thay vì bộ nhập khẩu mô-đun

Từ documentation:

Các module bộ đã bị phản đối; tốt hơn là sử dụng các loại được đặt sẵn trong các loại và frozenset.

25

Lịch sử:

Trước Python 2.3: không có chức năng thiết lập
Python 2.3: sets mô-đun đến
Python 2.4: setfrozenset built-in giới thiệu
Python 2.6: sets mô-đun bị phản đối

Bạn nên thay đổi mã của mình để sử dụng set thay vì sets.Set.

Nếu bạn vẫn muốn để có thể hỗ trợ sử dụng Python 2.3, bạn có thể làm điều này vào lúc bắt đầu của kịch bản của bạn:

try: 
    set 
except NameError: 
    from sets import Set as set 
5

Nếu bạn muốn sửa chữa nó James chắc chắn có câu trả lời đúng, nhưng trong trường hợp bạn muốn chỉ cần tắt các cảnh báo không dùng nữa, bạn có thể chạy python như vậy:

$ python -Wignore::DeprecationWarning 
Python 2.6.2 (r262:71600, Sep 20 2009, 20:47:22) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sets 
>>> 

(Từ: http://puzzling.org/logs/thoughts/2009/May/3/python26-deprecation-warning)

bạn cũng có thể bỏ qua nó lập trình:

import warnings 
warnings.simplefilter("ignore", DeprecationWarning) 
Các vấn đề liên quan