Để 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:
1. Sử dụng Module Global
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
2. Sử dụng Từ Khóa 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
3. Sử dụng Class
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
Kết luận
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!