Nó hoạt động khi tôi chạy nó. Tôi sẽ thừa nhận tôi không hiểu
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
4 và import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
5 100% vì vậy tôi không chắc liệu có thể có một số cảnh báo kỳ lạ hay không, nhưng cho đến nay nó có vẻ hoạt động. Nhận xét được khen thưởng. ]Sau một số nghiên cứu nữa nếu bạn gọi
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
6 như tôi đã đề xuất với Globals và import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
6 nằm trong một chức năng, nó sẽ không hoạt động như mong đợi nếu bạn muốn lưu các veria trong phạm vi địa phương. Cho công việc sử dụngimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
0. Điều này xảy ra bởi vì Globals lấy toàn bộ yêu cầu từ mô-đun -nơi chức năng được xác định, không phải từ nơi được gọi là dự đoán của tôi…Nhà khoa học dữ liệu Python char. Cách bán tải từ ngày hôm qua
Nhiều nghiên cứu sinh-datascientist, nếu tình cờ vượt qua
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
1 trên đường, có thể bỏ lỡ một tính năng tiện dụng ở đó để tiết kiệm thời gian làm việc. Bạn đã thực hiện một số phân tích, có một loạt các kết quả trung gian mà bạn muốn sao lưu thời gian tạm thời để sử dụng lại sau này mà không cần phải chạy lại toàn bộ phân tích từ đầu. Trongimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
1, nó đơn giản nhưimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
3. Làm thế nào chúng ta sẽ làm điều đó trongimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
4?Có gì trên bàn?
Chúng ta có gì trong khoảng thời gian không làm việc Python bình thường của mình?
Show does not time working atỞ đây, chúng tôi đã tìm thấy hai biến
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
6 mà chúng tôi vừa tạo, ngoài các thuộc tính được phân tích mặc định khácChúng ta có thể lấy lại giá trị của các biến đó bằng cách sử dụng
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
5Truy xuất giá trị của các biếnBây giờ chúng tôi có thể tự động nhận tên và giá trị của tất cả các biến trong phiên bản Python của chúng tôi. Chúng ta có thể dễ dàng sao lưu những người này bằng cách sử dụng mô-đun tiêu chuẩn. Chỉ cần là đồ rằng không phải tất cả thứ là dưa chua. Một ví dụ đơn giản có thể là hàm
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
9. Không phải tất cả các thứ đều có thể được ngheDanh sách mở rộng hơn của các đối tượng có thể chọn có thể được tìm thấy ở đây
Để tránh lỗi khi sao lưu, chúng tôi có thể lọc các đối tượng không thể sử dụng
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
30. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
3Kiểm tra xem các đối tượng có thể chọn được khôngLàm thế nào để sao lưu này?
Đặt tất cả lại với nhau, đây là một số giải pháp đơn giản
First solution is with standard module -mô-đun
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
11. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
31Chúng tôi sẽ liệt kê tất cả các đối tượng trên mạng trong phiên bản hiện tại bằng
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
4 và truy xuất giá trị của chúng bằng import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
5. One dictionaryimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
34 tạm thời được sử dụng để thu thập tất cả các đối tượng và sau đóimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
8 được sử dụng cho tuần tự hóaimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
34 thành một tệp. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
6Giải pháp thứ hai cho gói
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
17. gói import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
37Theo cách tiếp cận tương tự, chúng ta có thể sử dụng mô-đun tiêu chuẩn ____28 để lưu và sau đó Khôi phục các đối tượng có thể lấy được trong phiên bản Python. Như sau hậu trường,
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38 sử dụngimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
8 để tuần tự hóa và giảm giá cấu trúc dữ liệu, logic của chúng tôi sẽ rất giống nhau. Ngoài ra, chỉ các đối tượng có thể lấy mới có thể được lưu lại và phục hồi bằngimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
2Sự khác biệt cơ bản giữa các phương pháp dựa trên
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
8 vàimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38 nằm ở bản chất của tạm thời đối tượng của chúng tôi. Trong giải pháp đầu tiên,import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
34 là một từ điển thực sự chứa một bản sao của tất cả các đối tượng đã được lưu. Do đó, khi chúng tôi kiểm tra kích thước của đối tượng_______134 trong hai giải phápimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
34 thì kích thước sẽ là tổng của tất cả các đối tượng được lưu và làm điều đó lớn hơn kích thước của mỗi đối tượng. Kích thước của `bk` là bộ sưu tập của tất cả các đối tượng được lưu, do đó kích thước lớn hơnTrong giải pháp thứ hai này,
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
34 chỉ là một tham chiếu đếnimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
99. Thật vậy,import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38 đóng vai trò là giao diện cho cơ sở dữ liệuimport my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
21 cơ bản. Kích thước của _import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
22in this field is small than more in this field. Kích thước của `bk` với cách tiếp cận với kệ` nhỏ hơn nhiềuDo đó, có ít nhất hai lợi thế trong quá trình sử dụng
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38- Nhận bộ nhớ thấp hơn khi sao lưu phiên bản hiện tại
- Có thể tải xuống một phần đã lưu phiên bản bằng cách mở cơ sở dữ liệu và chỉ tải xuống các biến bắt buộc
Giải pháp thứ ba là với
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
44. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
24Như đã đề cập ở trên, có những đối tượng mà chúng ta sẽ không thể lừa, ví dụ, chức năng Lambda. Chúng ta có thể sử dụng giải pháp của bên thứ ba với mô-đun
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
25. Nó cho phép tuần tự hóa nhiều loại đối tượng hơn. Và trong trường hợp thất bại, nó cung cấp các chức năng, ví dụ. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
26 để điều khiển các thuộc tính thất bại bên trong đối tượng đó. import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
8Chúng tôi có thể xác minh điều này bằng cách kiểm tra tổng số đối tượng được khôi phục từ phiên bản đã lưu bằng cách sử dụng
import my_pkg as mp
x=1
mp.load_workspace['a', globals[]]
print x #print 3 for me
38 [or____08] và______025. Chỉ có 7 đối tượng được ngâm và do đó được khôi phục bằng cách sử dụng `kệ` [or` dưa chua], có nhiều đối tượng có thể được lưu lại và do đó được phục hồi bằng cách sử dụng `Dill`Đây là một ví dụ đơn giản để hiển thị nguyên tắc. Vui lòng kiểm tra chính mình. Mã hoàn chỉnh có thể được tìm thấy trong github của tôi
Ghi chú cuối cùng
Có hai điều không được thảo luận ở đây nhưng sẽ rất quan trọng để biết
- Deserialize use
8 có thể là một cạm bẫy nghiêm trọng trong an ninh. Xin hãy cẩn thận để không giải nén các đối tượng ngâm từ nguồn không xác định. Tôi sẽ thảo luận về điều này sâu trong một bài viết khácimport my_pkg as mp x=1 mp.load_workspace['a', globals[]] print x #print 3 for me
8 chỉ tạo tài liệu tham khảo tên cho các chức năng và các lớp và mô-đun mà chúng được đưa ra. Chức năng không phải là chức năng. Do đó, bạn cần phải xác định mô đun -module trong đó các chức năng và định nghĩa của lớp có thể giải nén chính xác các đối tượng đã lưu của bạn. Không phải mã chức năng. Do đó, bạn sẽ cần mô-đun xác định nơi định nghĩa của hàm và lớp để có thể giải mã chính xác các đối tượng đã lưu của bạnimport my_pkg as mp x=1 mp.load_workspace['a', globals[]] print x #print 3 for me
Thank you many because have read. Nếu bạn có bất kỳ giải pháp hoặc nhận xét thay thế nào cho các cách tiếp cận tốt hơn, vui lòng nhận lại nhận xét