Hiểu phạm vi biến toàn cục trong python

Understand Global Variables Scope Python



Hai loại biến có thể được định nghĩa trong hầu hết các ngôn ngữ lập trình. Đây là các biến toàn cục và biến cục bộ. Các biến được định nghĩa bên ngoài hàm được gọi là biến toàn cục. Biến này có thể truy cập và có thể thay đổi từ bất kỳ đâu trong tập lệnh. Biến được khai báo bên trong hàm được gọi là biến cục bộ. Nhưng nếu cùng một tên biến tồn tại dưới dạng các biến toàn cục và cục bộ thì biến bên trong hàm sẽ được ưu tiên và giá trị của biến toàn cục sẽ bị bỏ qua. Phạm vi của biến toàn cục trong tập lệnh python được hiển thị trong hướng dẫn này bằng cách sử dụng các ví dụ khác nhau.

Ví dụ-1: Sử dụng đơn giản một biến toàn cục

Ví dụ sau đây cho thấy cách sử dụng đơn giản của một biến toàn cục bên trong hàm và bên ngoài hàm. Ở đây, một biến toàn cục có tên chữ được sử dụng để gán một dữ liệu chuỗi. Một chức năng tùy chỉnh có tên printMessage () được định nghĩa để in ra giá trị của biến toàn cục. Giá trị của chữ biến được in bên trong hàm và bên ngoài hàm sau khi thay đổi giá trị.







#! / usr / bin / env python3

# Xác định một biến toàn cục
chữ= 'Chào mừng đến với LinuxHint'

# Xác định một chức năng
phản đốiprintMessage():

# In biến toàn cục từ hàm
in('Biến toàn cục bên trong hàm: ',chữ)

# Gọi hàm
printMessage()

# Thay đổi giá trị của biến toàn cục
chữ= 'Học lập trình Python'

# In giá trị hiện tại của biến toàn cục
in('Biến toàn cục bên ngoài hàm: ',chữ)

Đầu ra:



Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh. Nó đã in giá trị, ‘ Chào mừng bạn đến với LinuxHint ’ được gán cho biến trước khi gọi hàm. Tiếp theo, nó in giá trị, 'Học lập trình Python' sau khi thay đổi giá trị của biến.







Ví dụ-2: Sử dụng biến cục bộ và toàn cục có cùng tên

Nếu bạn muốn khai báo một tên biến bên trong một hàm đã được khai báo là biến toàn cục trước đó trong python và muốn sử dụng biến thì nó sẽ coi biến đó là biến cục bộ và tạo ra lỗi. Tập lệnh sau sẽ hiển thị lỗi. Ở đây, văn bản biến được định nghĩa là một biến toàn cục và cục bộ.

#! / usr / bin / env python3

# Xác định một biến toàn cục
chữ= 'Tôi thích Python'

# Xác định một chức năng
phản đốiprintMessage():
in(chữ)

chữ= 'Tôi thích PHP'

# Gọi hàm
printMessage()

Đầu ra:



Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh.

Để tránh trường hợp trên và nếu bạn muốn khai báo một biến cục bộ trùng tên với một biến toàn cục thì trước tiên bạn phải gán biến cục bộ bên trong hàm. Tập lệnh sau đây cho thấy rằng những thay đổi trong biến cục bộ không tạo ra bất kỳ thay đổi nào trong biến toàn cục. chữ biến được in bên trong và bên ngoài của hàm ở đây.

#! / usr / bin / env python3

# Xác định một biến toàn cục
chữ= 'Tôi thích Python'

# Xác định một chức năng
phản đốiprintMessage():
# Độ giá trị địa phương
chữ= 'Tôi thích PHP'
# In biến cục bộ, văn bản
in('Giá trị của' văn ​​bản 'bên trong hàm: ',chữ)

# Gọi hàm
printMessage()

# In biến toàn cục, văn bản
in('Giá trị của' văn ​​bản 'bên ngoài chức năng: ',chữ)

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh.

Ví dụ-3: Sử dụng biến toàn cục bên trong hàm

Ví dụ trước cho thấy rằng biến toàn cục không thể truy cập được bên trong một hàm. Bạn có thể dùng toàn cầu từ khóa để truy cập một biến toàn cục từ bất kỳ hàm nào. Trong tập lệnh sau, cal_percentage () hàm được định nghĩa để tính toán tỷ lệ phần trăm của bất kỳ số nào trong đó cả biến cục bộ và toàn cục được sử dụng. Ở đây, trên một là một biến toàn cục và perVal là một biến cục bộ. toàn cầu Từ khóa được sử dụng ở đây để xác định biến toàn cục bên trong hàm và giá trị của biến toàn cục được thay đổi bên trong hàm.

#! / usr / bin / env python3

# Nhận một giá trị số nguyên
trên một= NS(đầu vào('Nhập một số : '))

# Xác định chức năng
phản đốical_percentage():
# Nhận ra biến toàn cục bằng cách sử dụng từ khóa toàn cầu
toàn cầutrên một

# Lấy một giá trị số nguyên làm tỷ lệ phần trăm
perVal= NS(đầu vào('Nhập giá trị phần trăm:'))

# Tính giá trị phần trăm
kết quả= trôi nổi((cho dù * perVal)/100)

# In kết quả đã định dạng
in('% d phần trăm của% d =% f'%(perVal,trên một,kết quả))

# Thay đổi giá trị của biến toàn cục
trên một= 500

# In giá trị của biến toàn cục trước khi gọi hàm
in(' Giá trị của num =% d '% trên một)

# Gọi hàm
cal_percentage()

# In giá trị của biến toàn cục sau khi gọi hàm
in(' Giá trị của num =% d '% trên một)

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, 10% của 350 được tính toán và in.

Ví dụ-4: Sử dụng các biến toàn cục từ một tập lệnh khác

Ví dụ sau đây cho thấy cách biến toàn cục được khai báo trong một tập lệnh có thể được sử dụng trong một tập lệnh khác. Giả sử, tên tệp là global6.py sẽ sử dụng các biến toàn cục được xác định trong tệp có tên global5.py . Ba biến toàn cục được khai báo trong global5.py . Bạn phải nhập toàn cầu5 để sử dụng các biến trong tập lệnh khác. Kịch bản của global6.py sẽ tính toán mức lương của ba loại nhân viên dựa trên các giá trị đầu vào và các biến toàn cục.

#! / usr / bin / env python3
# đây là tệp global5.py

# Cơ cấu lương cơ bản của công ty
Căn bản= 5000
Thuộc về y học= 500
Vận chuyển= 500 #! / usr / bin / env python3
# đây là tệp global6.py

# Nhập các biến toàn cục từ global5.py
nhập khẩutoàn cầu5

# Lấy tên nhân viên
Tên= đầu vào('Nhập tên nhân viên:')
# Lấy tên bài đăng
bài đăng= đầu vào('Nhập bài đăng:')

# Khởi tạo biến lỗi
lỗi= Sai

# Kiểm tra bài đăng và đặt mức lương cơ bản dựa trên bài đăng
nếu như(bài đăng.phía trên() == 'CEO'):
căn bản=toàn cầu5.Căn bản+(toàn cầu5.Căn bản*0,4)
elif(bài đăng.phía trên() == 'NGƯỜI QUẢN LÝ'):
căn bản=toàn cầu5.Căn bản+(toàn cầu5.Căn bản*0,25)
elif(bài đăng.phía trên() == 'KẾ TOÁN VIÊN'):
căn bản=toàn cầu5.Căn bản+(toàn cầu5.Căn bản*0,15)
khác:
# Đặt lỗi thành true nếu không tìm thấy giá trị bài đăng
lỗi= Thật

# In lương nếu có lỗi
nếu như (lỗi== Sai):
lương=cơ bản + toàn cầu5.Thuộc về y học+ toàn cầu5.Vận chuyển
in('Mức lương của% s là% d'%(Tên,lương))
khác:
in('Không tìm thấy bài đăng')

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, tập lệnh được chạy hai lần với một bài đăng hợp lệ và bài đăng không hợp lệ.

Phần kết luận:

Khái niệm về một biến toàn cục trong python được giải thích trong hướng dẫn này với các ví dụ đơn giản khác nhau cho người dùng python mới. Tôi hy vọng người đọc sẽ có được kiến ​​thức thích hợp về các biến toàn cục cũng như các biến cục bộ sau khi đọc bài hướng dẫn này.

Xem Video của Tác giả: ở đây