Để chia sẻ các biến toàn cục giữa các module trong Python, bạn có thể sử dụng một trong những cách sau đây:
Bạn có thể tạo một module riêng biệt để lưu trữ các biến toàn cục và sau đó import module này vào các module khác.
Bước 1: Tạo một file config.py
để chứa các biến toàn cục.
# config.py global_var = "Hello, World!"
Bước 2: Import module config
vào các module khác và sử dụng biến toàn cục.
# module1.py import config def print_global_var(): print(config.global_var) print_global_var() # Output: Hello, World!
# module2.py import config def modify_global_var(new_value): config.global_var = new_value modify_global_var("New Value")
# main.py import module1 import module2 import config module1.print_global_var() # Output: Hello, World! module2.modify_global_var("Updated Value") module1.print_global_var() # Output: Updated Value
global
Nếu bạn muốn thay đổi giá trị của một biến toàn cục trong một module khác, bạn có thể sử dụng từ khóa global
. Tuy nhiên, cách này chỉ áp dụng cho các biến được định nghĩa trong module đó.
Ví dụ:
# module1.py global_var = "Initial Value" def change_global_var(): global global_var # Đánh dấu biến toàn cục global_var = "Changed Value"
# main.py import module1 print(module1.global_var) # Output: Initial Value module1.change_global_var() print(module1.global_var) # Output: Changed Value
Bạn có thể sử dụng một class để quản lý các biến toàn cục. Điều này giúp tổ chức mã rõ ràng hơn.
Ví dụ:
# global_data.py class GlobalData: global_var = "Initial Value" # module1.py from global_data import GlobalData def print_global_var(): print(GlobalData.global_var) # module2.py from global_data import GlobalData def modify_global_var(new_value): GlobalData.global_var = new_value # main.py import module1 import module2 module1.print_global_var() # Output: Initial Value module2.modify_global_var("Updated Value") module1.print_global_var() # Output: Updated Value
Chia sẻ các biến toàn cục giữa các module trong Python có thể được thực hiện dễ dàng bằng cách sử dụng một module chung, từ khóa global
, hoặc một class. Phương pháp nào bạn chọn sẽ phụ thuộc vào yêu cầu của ứng dụng và cách bạn muốn tổ chức mã của mình. Nếu bạn có thêm câu hỏi hoặc cần làm rõ, hãy cho tôi biết!