Kho key/value bền vững dạng static cho macro hiện tại.
Cú pháp
Storage
Không thể khởi tạo trực tiếp lớp này.
Tham số
Không có
Giá trị trả về
—
Hành vi / tác động
Kho key/value bền vững dạng static cho macro hiện tại. Biến thường chỉ được dùng chung giữa các action PYTHON_CODE chạy tuần tự trong cùng một luồng chạy, kể cả action bên trong nhóm GROUP; các luồng chạy song song có vùng biến riêng. Key của Storage được dùng chung giữa mọi luồng chạy, vì vậy chỉ dùng Storage khi giá trị cần tồn tại sang lần chạy macro tiếp theo, không dùng như kênh nhắn tin liên tiến trình. Các thay đổi được tự lưu sau 2 giây không có lượt ghi mới và được commit lại sau khi toàn bộ lượt Run cùng mọi luồng chạy nền kết thúc.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Lưu giá trị xuyên qua nhiều lượt chạy macro riêng biệt
run_count = Storage.get("run_count", 0)
run_count = run_count + 1
Storage.set("run_count", run_count)
Storage.set("last_point", Point(500, 900))
MacroPanel.notify("Run #" + str(run_count))
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Đọc một giá trị đã lưu theo key và có thể dùng giá trị mặc định nếu thiếu key.
Cú pháp
Storage.get(key, default=None)
Tham số
Tên
Mô tả
keyAny
Key cần tra cứu.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định
defaultAny?
Giá trị dự phòng được trả về khi thiếu key.
Tùy chọn · Theo vị trí hoặc tên
Mặc định:None
Giá trị trả về
Any? — Giá trị đã lưu cho key đó, hoặc giá trị mặc định đã truyền vào.
Hành vi / tác động
Đọc một giá trị đã lưu theo key và có thể dùng giá trị mặc định nếu thiếu key.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Khôi phục bộ đếm đã lưu với giá trị mặc định dự phòng
run_count = Storage.get("run_count", 0)
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Ghi mới hoặc thay thế một phần tử trong kho lưu trữ bền vững.
Cú pháp
Storage.set(key, value)
Tham số
Tên
Mô tả
keyAny
Key cần ghi.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định
valueAny?
Giá trị cần lưu bền vững cho key đó.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định
Giá trị trả về
None — Không trả về trực tiếp. Storage được cập nhật ngay tại chỗ, tự lưu sau 2 giây không có lượt ghi mới và được commit lại sau khi toàn bộ lượt Run cùng mọi luồng chạy nền kết thúc.
Hành vi / tác động
Ghi mới hoặc thay thế một phần tử trong kho lưu trữ bền vững. Các giá trị được hỗ trợ giữ nguyên kiểu thân thiện với script như Number, String, Boolean, Point, Region, list, tuple, dict, set và None, kể cả giá trị lồng trong collection.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Lưu giá trị cho lượt chạy macro tiếp theo
Storage.set("run_count", 3)
Storage.set("last_point", Point(500, 900))
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Any? — Giá trị đã bị xóa, hoặc None nếu key không tồn tại.
Hành vi / tác động
Xóa một phần tử đã lưu và trả về giá trị cũ.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Xóa flag đã lưu khi không còn cần nữa
old_flag = Storage.remove("boost_enabled")
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Kiểm tra xem một key đã lưu hiện có tồn tại hay không.
Cú pháp
Storage.contains(key)
Tham số
Tên
Mô tả
keyAny
Key cần kiểm tra.
Bắt buộc · Theo vị trí hoặc tên
Không có giá trị mặc định
Giá trị trả về
Boolean — `True` khi key tồn tại, ngược lại là `False`.
Hành vi / tác động
Kiểm tra xem một key đã lưu hiện có tồn tại hay không.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Chặn/cho chạy logic dựa trên trạng thái đã lưu
if Storage.contains("last_point"):
MacroPanel.notify("Saved point is ready")
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Lấy toàn bộ key đã lưu thành một list theo đúng thứ tự đã thêm.
Cú pháp
Storage.keys()
Tham số
Không có
Giá trị trả về
list — Một list các key đã lưu.
Hành vi / tác động
Lấy toàn bộ key đã lưu thành một list theo đúng thứ tự đã thêm.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Kiểm tra các giá trị đang được lưu cho macro này
saved_keys = Storage.keys()
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Lấy toàn bộ value đã lưu thành một list theo đúng thứ tự đã thêm.
Cú pháp
Storage.values()
Tham số
Không có
Giá trị trả về
list — Một list các giá trị đã lưu.
Hành vi / tác động
Lấy toàn bộ value đã lưu thành một list theo đúng thứ tự đã thêm.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Đọc mọi giá trị đã lưu để kiểm tra nhanh
saved_values = Storage.values()
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
None — Không trả về trực tiếp. Kho lưu trữ sẽ trở thành rỗng.
Hành vi / tác động
Xóa toàn bộ phần tử đã lưu cho macro hiện tại.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Đặt lại toàn bộ giá trị Storage đã lưu
Storage.clear()
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.
Trả về toàn bộ Storage hiện tại dưới dạng dict live được mọi luồng chạy trong lượt Run dùng chung.
Cú pháp
Storage.to_dict()
Tham số
Không có
Giá trị trả về
dict — Một dict live chứa toàn bộ phần tử đang được lưu bền vững.
Hành vi / tác động
Trả về toàn bộ Storage hiện tại dưới dạng dict live được mọi luồng chạy trong lượt Run dùng chung. Các chỉnh sửa trực tiếp trên phần tử của dict trả về đi theo cơ chế tự lưu, và snapshot live mới nhất được commit sau khi toàn bộ lượt Run cùng mọi luồng chạy nền kết thúc.
Thực thi
Chờ hoàn tất: Tùy điều kiện
An toàn khi chạy đồng thời: Thực hiện tuần tự
Chạy song song: Tùy điều kiện
Mọi luồng trong một lượt Run dùng chung phiên Storage. Từng thao tác và thay đổi lồng nhau được theo dõi có khóa bảo vệ. get rồi set không phải giao dịch nguyên tử; dùng một luồng ghi khi cập nhật phụ thuộc lần đọc trước.
Ví dụ
# Đọc và cập nhật toàn bộ dictionary storage đã lưu
state = Storage.to_dict()
state["bonus"] = 5
MacroPanel.notify(str(state))
Lỗi / giới hạn
Không có giới hạn bổ sung được ghi nhận; tuân thủ hợp đồng tham số và hành vi ở trên.