2011-11-09 46 views

Trả lời

19

Vấn đề lớn nhất tôi thấy với import config là bạn không biết những gì sẽ xảy ra khi bạn nhập nó. Có, bạn sẽ nhận được một tập hợp các ký hiệu được tham chiếu tự nhiên bằng cách sử dụng giao diện kiểu .. Nhưng mã trong tệp cấu hình cũng có thể làm ai-biết-cái gì. Bây giờ, nếu bạn hoàn toàn tin tưởng người dùng của bạn, sau đó cho phép họ làm bất cứ điều gì họ cảm thấy như trong tập tin cấu hình có thể là một điều tốt. Tuy nhiên, nếu bạn có số lượng không xác định hoặc bạn muốn bảo vệ người dùng, thì việc có tệp cấu hình theo định dạng truyền thống sẽ an toàn hơn và bảo mật hơn.

+3

Đó là một điểm tốt thực sự mà tôi đã không xem xét vì toàn bộ niềm tin đó trong chính tôi. – jathanism

6

"cấu hình nhập" rất đơn giản, linh hoạt và mạnh mẽ nhưng, vì nó có thể làm bất cứ điều gì, có thể nguy hiểm nếu config.py không ở nơi an toàn.

3

IMO vấn đề mang tính cá nhân. Bạn có dự định cho bên thứ ba chỉnh sửa cấu hình của mình không? Nếu vậy, có thể nó có ý nghĩa để có một phong cách cấu hình "tự nhiên" một la ConfigParser mà không phải là kỹ thuật và có thể không quá xa so với người đứng đầu đối tượng mục tiêu của bạn.

Nhiều dự án phổ biến như FabricDjango sử dụng kiểu cấu hình "gốc" về cơ bản chỉ là mô-đun Python. Fabry có fabfile.py và Django có settings.py. Nhìn chung, bạn sẽ có nhiều tính linh hoạt hơn bằng cách sử dụng phương pháp nhập khẩu mô-đun đơn giản vì bạn có thể làm bất cứ điều gì bạn muốn trong tệp đó, bao gồm định nghĩa hàm, lớp, v.v. bạn đang nhập.

7

Điều này hoàn toàn phụ thuộc vào nhu cầu và mục tiêu của bạn cho tập lệnh. Một cách thực sự không phải là "tốt hơn", chỉ khác nhau. Đối với một cuộc thảo luận rất chi tiết trên hầu hết các con trăn cấu hình phân tích cú pháp (bao gồm ConfigParserconfig module), xem:

Python Wiki - ConfigParserShootout

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