Hướng dẫn what is box in python? - hộp trong python là gì?

Hướng dẫn what is box in python? - hộp trong python là gì?

from box import Box

movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } })

movie_box.Robin_Hood_Men_in_Tights.imdb_stars
# 6.7

Hộp sẽ tự động làm cho các khóa không thể truy cập được an toàn để truy cập như một thuộc tính. Bạn luôn có thể vượt qua chuyển đổi_box = false cho hộp để vô hiệu hóa hành vi đó. Ngoài ra, tất cả các dict và danh sách mới được thêm vào một đối tượng hộp hoặc danh sách hộp được chuyển đổi tự động.

Có hơn nửa tá cách để tùy chỉnh hộp của bạn và làm cho nó hoạt động cho bạn.

Kiểm tra Wiki Github mới để biết thêm chi tiết và ví dụ!

Cài đặt

Phiên bản pin hộp của bạn!

Nếu bạn có thói quen phiên bản ghim thư viện của bạn, cuối cùng nó sẽ cắn bạn. Hộp có danh sách phá vỡ sự thay đổi giữa các phiên bản chính, bạn nên luôn luôn kiểm tra trước khi cập nhật.

requirements.txt

python-box[all]~=6.0

Vì hộp tuân thủ phiên bản ngữ nghĩa (AKA thay đổi API sẽ chỉ xảy ra giữa phiên bản chính), tốt nhất là sử dụng khớp phát hành tương thích bằng mệnh đề ~ =.

Cài đặt từ dòng lệnh

pip install python-box[all]~=6.0 --upgrade

Cài đặt với các phụ thuộc đã chọn

Hộp không còn buộc phải cài đặt các phụ thuộc bên ngoài như YAML và TOML. Thay vào đó, bạn có thể chỉ định những gì bạn muốn, ví dụ, [tất cả] là tốc ký cho:

pip install python-box[ruamel.yaml,toml,msgpack]~=6.0 --upgrade

Nhưng bạn cũng có thể làm hỏng Ruamel.yaml cho pyyaml.

Kiểm tra thêm chi tiết về chi tiết cài đặt.

Hộp 6 được kiểm tra trên Python 3.6+, nếu bạn đang nâng cấp từ các phiên bản trước, vui lòng xem qua bất kỳ thay đổi phá vỡ và tính năng mới nào.

Phiên bản tối ưu hóa

Hộp 6 đang giới thiệu tối ưu hóa Cython cho các nền tảng chính theo mặc định. Tải các bộ dữ liệu lớn có thể nhanh hơn tới 10 lần!

Nếu bạn không ở trên hệ thống được hỗ trợ x86_64, bạn sẽ cần phải thực hiện một số công việc bổ sung để cài đặt phiên bản tối ưu hóa. Sẽ có một cảnh báo về cảnh báo của người Viking: Cython không được cài đặt, không thể tối ưu hóa hộp trong khi cài đặt. Bạn sẽ cần các tệp phát triển Python, trình biên dịch hệ thống và các gói Python Cython và Wheel.not on a x86_64 supported system you will need to do some extra work to install the optimized version. There will be an warning of “WARNING: Cython not installed, could not optimize box” during install. You will need python development files, system compiler, and the python packages Cython and wheel.

Ví dụ Linux:

Trước tiên, hãy chắc chắn rằng bạn đã cài đặt các tệp phát triển Python (Python3-Dev hoặc Python3-devel trong hầu hết các repos). Sau đó, bạn sẽ cần cài đặt Cython và Wheel và sau đó cài đặt (hoặc cài đặt lại với hộp Python) Python-Box.

pip install Cython wheel
pip install python-box[all]~=6.0 --upgrade --force

Nếu bạn có bất kỳ vấn đề nào, vui lòng mở một vấn đề GitHub với lỗi bạn đang gặp phải!

Tổng quan

Hộp được thiết kế để thay thế sự thay thế gần như trong suốt cho các từ điển thêm truy cập ký hiệu chấm và tính năng mạnh mẽ khác.

Có rất nhiều loại hộp để tùy chỉnh nó cho nhu cầu của bạn, cũng như bộ chuyển đổi tiện dụng!

Hãy nhớ rằng bất kỳ từ điển phụ hoặc các từ nào được đặt sau khi bắt đầu sẽ được tự động chuyển đổi thành một đối tượng hộp và danh sách sẽ được chuyển đổi thành danh sách Boxlist, tất cả các đối tượng khác vẫn còn nguyên vẹn.

Kiểm tra sự khởi đầu nhanh chóng để biết thêm chi tiết sâu.

Hộp có thể được khởi tạo theo cách tương tự như Dict.

Box({'data': 2, 'count': 5})
Box(data=2, count=5)
Box({'data': 2, 'count': 1}, count=5)
Box([('data', 2), ('count', 5)])

# All will create
# 

Hộp là một lớp con của Dict, ghi đè một số chức năng cơ sở để đảm bảo mọi thứ được lưu trữ trong Dict có thể được truy cập dưới dạng thuộc tính hoặc giá trị khóa.

small_box = Box({'data': 2, 'count': 5})
small_box.data == small_box['data'] == getattr(small_box, 'data')

Tất cả các dicts (và danh sách) được thêm vào một hộp sẽ được chuyển đổi khi chèn thành một hộp (hoặc danh sách hộp), cho phép truy cập ký hiệu DOT đệ quy.

Hộp cũng bao gồm các chức năng trợ giúp để biến nó trở lại thành một dict, cũng như thành các chuỗi hoặc tệp JSON, YAML, TOML hoặc MSGPACK.

Cảm ơn

Một lời cảm ơn rất lớn đến tất cả mọi người đã đưa ra các tính năng và phản hồi trong những năm qua! Kiểm tra tất cả mọi người đã đóng góp.

Một lời cảm ơn lớn đến Quỹ phần mềm Python và Ủy ban PSF-Trademarks, để phê duyệt chính thức để sử dụng logo Python trên logo hộp!

Ngoài ra cũng hét lên đặc biệt với Pythonbytes, người đã giới thiệu hộp trên podcast của họ.

Giấy phép

Giấy phép MIT, Bản quyền (c) 2017-2022 Chris Griffith. Xem Tệp giấy phép.