Hướng dẫn how do you share a variable across a module in python? - làm thế nào để bạn chia sẻ một biến trên một mô-đun trong python?
307 Show Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi hơi bối rối về cách các biến toàn cầu hoạt động. Tôi có một dự án lớn, với khoảng 50 tệp và tôi cần xác định các biến toàn cầu cho tất cả các tệp đó. Những gì tôi đã làm là xác định chúng trong tệp 0 dự án của mình, như sau:
Tôi đang cố gắng sử dụng 1 trong 2, như sau
Một cách khác tôi đã thử, nhưng cũng không hoạt động
Và bên trong 2 Tôi đã có điều này:
Nhưng một lần nữa, nó không hoạt động. Làm thế nào tôi nên thực hiện điều này? Tôi hiểu rằng nó không thể hoạt động như vậy, khi hai tệp không thực sự biết nhau (cũng không biết chính), nhưng tôi không thể nghĩ ra cách làm điều đó, mà không sử dụng IO Writing hoặc Pickle, mà Tôi không muốn làm.
Martineau Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges Đã hỏi ngày 23 tháng 10 năm 2012 lúc 15:54Oct 23, 2012 at 15:54 4 Vấn đề là bạn đã xác định 1 từ 0, nhưng 2 cần sử dụng nó. Dưới đây là một cách sạch sẽ để giải quyết vấn đề này: Di chuyển tất cả các toàn cầu vào một tệp, tôi gọi tệp này 7. Tệp này chịu trách nhiệm xác định toàn cầu và khởi tạo chúng:
Tiếp theo, 8 của bạn có thể nhập Globals:
Lưu ý rằng 8 không gọi ________ 40 Nhiệm vụ đó thuộc về 0:
Bằng cách này, bạn đạt được mục tiêu của mình trong khi tránh khởi tạo các biến toàn cầu nhiều lần. Đã trả lời ngày 23 tháng 10 năm 2012 lúc 16:16Oct 23, 2012 at 16:16
Hai Vuhai VuHai Vu 35K11 Huy hiệu vàng63 Huy hiệu bạc91 Huy hiệu Đồng11 gold badges63 silver badges91 bronze badges 12 Xem tài liệu của Python về việc chia sẻ các biến toàn cầu trên các mô -đun:
Đã trả lời ngày 12 tháng 8 năm 2017 lúc 4:24Aug 12, 2017 at 4:24
Ogaga Uzohogaga UzohOgaga Uzoh 1.9171 Huy hiệu vàng9 Huy hiệu bạc12 Huy hiệu đồng1 gold badge9 silver badges12 bronze badges 7 Bạn có thể nghĩ về các biến toàn cầu Python là các biến "mô -đun" - và như vậy chúng hữu ích hơn nhiều so với "biến toàn cầu" truyền thống từ C. Một biến toàn cầu thực sự được xác định trong 2 của mô -đun và có thể được truy cập từ bên ngoài mô -đun đó dưới dạng thuộc tính mô -đun.Vì vậy, trong ví dụ của bạn:
And: 0
Morgoth 4.6537 Huy hiệu vàng42 Huy hiệu bạc62 Huy hiệu Đồng7 gold badges42 silver badges62 bronze badges Đã trả lời ngày 23 tháng 10 năm 2012 lúc 16:04Oct 23, 2012 at 16:04
JSbuenojsbuenojsbueno 89,8K10 Huy hiệu vàng139 Huy hiệu bạc193 Huy hiệu Đồng10 gold badges139 silver badges193 bronze badges 3 Sử dụng 3 nên khắc phục sự cố của bạn. Nó xác định mọi thứ để nó có sẵn trên toàn cầu (ngoại trừ các biến cục bộ trong nhập khẩu tất nhiên).Ví dụ: 1and: 2Đã trả lời ngày 23 tháng 10 năm 2012 lúc 15:59Oct 23, 2012 at 15:59
Đó là ninjait ninjaIT Ninja 6.0369 Huy hiệu vàng41 Huy hiệu bạc64 Huy hiệu đồng9 gold badges41 silver badges64 bronze badges 3 Câu trả lời Hai VU hoạt động tuyệt vời, chỉ một bình luận: Trong trường hợp bạn đang sử dụng toàn cầu trong mô -đun khác và bạn muốn đặt toàn cầu một cách linh hoạt, hãy chú ý nhập các mô -đun khác sau khi bạn đặt các biến toàn cầu, ví dụ:: 3Đã trả lời ngày 23 tháng 12 năm 2015 lúc 9:23Dec 23, 2015 at 9:23
Lastboylastboylastboy 5564 Huy hiệu bạc12 Huy hiệu đồng4 silver badges12 bronze badges Nỗ lực thứ 2 của bạn sẽ hoạt động hoàn hảo và thực sự là một cách thực sự tốt để xử lý các tên biến mà bạn muốn có sẵn trên toàn cầu. Nhưng bạn có một lỗi tên trong dòng cuối cùng. Đây là cách nó nên như vậy:
Xem dòng cuối cùng? Mylist là một attr của globfile, không phải là phụ. Điều này sẽ hoạt động như bạn muốn. Mike Đã trả lời ngày 23 tháng 10 năm 2012 lúc 16:08Oct 23, 2012 at 16:08
MikehuntermikehunterMikeHunter 4,0041 Huy hiệu vàng18 Huy hiệu bạc13 Huy hiệu đồng1 gold badge18 silver badges13 bronze badges 0 Dựa trên các câu trả lời và liên kết trên trong tôi đã tạo một mô -đun mới có tên 4: 5Sau đó, trong mô -đun chính của tôi, tôi sử dụng điều này: 6Trong một mô -đun nhập khẩu khác, tôi có thể sử dụng: 7Tôi chỉ dành một vài phút để thử nghiệm trong hai chương trình nhiều mô-đun Python khác nhau nhưng cho đến nay nó hoạt động hoàn hảo. Đã trả lời ngày 7 tháng 7 năm 2021 lúc 0:05Jul 7, 2021 at 0:05
WinEunuuchs2UnixWinEunuuchs2UnixWinEunuuchs2Unix 1.5821 Huy hiệu vàng15 Huy hiệu bạc28 Huy hiệu đồng1 gold badge15 silver badges28 bronze badges Tôi vừa bắt gặp bài đăng này và nghĩ đến việc đăng giải pháp của mình, chỉ trong trường hợp bất kỳ ai ở trong tình huống tương tự như tôi, nơi có khá nhiều tập tin trong chương trình được phát triển và bạn không có thời gian để suy nghĩ toàn bộ Nhập trình tự các mô -đun của bạn (nếu bạn không nghĩ về điều đó ngay từ đầu, chẳng hạn như tôi đã làm). Trong những trường hợp như vậy, trong tập lệnh mà bạn bắt đầu (các) toàn cầu của mình, chỉ cần mã hóa một lớp có nội dung như: 8và sau đó sử dụng, thay vì dòng trong tập lệnh mà bạn đã bắt đầu 9sử dụng 0Sau đó tôi đã có thể truy xuất / thay đổi các giá trị của bất kỳ thế giới nào trong số này thông qua 1Trong bất kỳ tập lệnh nào và những thay đổi này cũng tự động được áp dụng cho tất cả các tập lệnh khác bằng cách sử dụng chúng. Tất cả đều hoạt động, bằng cách sử dụng các báo cáo nhập khẩu chính xác mà trước đây đã thất bại, do các vấn đề được đề cập trong bài đăng / thảo luận này ở đây. Tôi chỉ đơn giản nghĩ về các thuộc tính của đối tượng toàn cầu đang thay đổi một cách linh hoạt mà không cần phải xem xét / thay đổi bất kỳ logic nhập khẩu nào, so với việc nhập đơn giản các biến toàn cầu và đó chắc chắn là cách tiếp cận nhanh nhất và dễ nhất (để truy cập sau này) để giải quyết loại vấn đề này cho tôi. Đã trả lời ngày 28 tháng 10 năm 2020 lúc 18:04Oct 28, 2020 at 18:04
DeveljoedeveljoeDevelJoe 6761 Huy hiệu vàng7 Huy hiệu bạc17 Huy hiệu đồng1 gold badge7 silver badges17 bronze badges Những cơn ác mộng không gian tên phát sinh khi bạn làm 5. Điều đó không thể bị căng thẳng đủ.Bạn có thể sử dụng 6 ở những nơi khác.Bạn thậm chí có thể có một mô -đun cấu hình hoàn toàn trống. 2 3 4result: 5Nhưng sử dụng các đối tượng bạn kéo vào với 6 sẽ đưa bạn xuống một con đường thất vọng. 6result: 7Và có lẽ bạn sẽ cố gắng sửa nó như thế này: 8result: 9Và sau đó có thể bạn sẽ tìm thấy trang này và cố gắng giải quyết nó bằng cách thêm một phương thức init (). Nhưng toàn bộ vấn đề là 6.Đã trả lời ngày 12 tháng 9 năm 2021 lúc 20:38Sep 12, 2021 at 20:38
Qelqelqel 8647 Huy hiệu bạc7 Huy hiệu đồng7 silver badges7 bronze badges Làm thế nào để bạn truy cập một biến từ mô -đun này sang mô -đun khác trong Python?Để nhập các biến từ một tệp khác, chúng tôi phải nhập tệp đó từ chương trình hiện tại ... Nhập và sau đó sử dụng. để truy cập biến .. từ nhập và sử dụng các biến .. từ nhập * và sau đó sử dụng các biến trực tiếp .. Làm thế nào để bạn tạo một biến được chia sẻ trong Python?Ví dụ: trước tiên chúng ta có thể tạo một hàng đợi. Với chức năng của chúng ta, chúng ta có thể xác định biến cục bộ của mình và gán một số giá trị. Chúng ta có thể chia sẻ biến cục bộ của chúng ta với một chủ đề khác bằng cách đặt nó vào hàng đợi.Thể hiện hàng đợi sau đó có thể được chia sẻ với một chủ đề khác có thể thực thi một số chức năng khác.create a queue.
Within our function, we can define our local variable and assign it some value. We can then share our local variable with another thread by putting it in a queue. The queue instance can then be shared with another thread that may execute some other function.
Các mô -đun Python có thể có biến không?Mỗi mô -đun/tệp có biến toàn cầu riêng mà mỗi lệnh trong tệp Python này có thể truy cập, đọc và sửa đổi giá trị của biến, nghĩa là nó trở thành một biến toàn cầu.Bạn cũng có thể làm rõ một biến được xác định trong các chức năng trên toàn cầu bằng cách tuyên bố nó toàn cầu.
Every command in this Python file can access, read, and modify the value of the variable, that is, it becomes a global variable. You can also explicitly make a variable defined within the functions globally by declaring it global.
Các biến toàn cầu trên các mô hình trong Python là gì?Biến toàn cầu trong Python là gì?Trong thế giới lập trình, một biến toàn cầu trong Python có nghĩa là có một phạm vi trong suốt chương trình, tức là, một giá trị biến toàn cầu có thể truy cập được trong suốt chương trình trừ khi bị che mờ.Một biến toàn cầu trong Python thường được tuyên bố là đỉnh của chương trình.having a scope throughout the program, i.e., a global variable value is accessible throughout the program unless shadowed. A global variable in Python is often declared as the top of the program. |