HomeLập trìnhPythonBiến toàn cục...

Biến toàn cục Python – Cách xác định ví dụ về biến toàn cục


Trong bài viết này, bạn sẽ tìm hiểu những kiến ​​thức cơ bản về biến toàn cục.

Để bắt đầu, bạn sẽ học cách khai báo các biến trong Python và thuật ngữ ‘phạm vi biến’ thực sự có nghĩa là gì.

Sau đó, bạn sẽ tìm hiểu sự khác biệt giữa biến cục bộ và biến toàn cục, đồng thời hiểu cách xác định biến toàn cục và cách sử dụng global từ khóa.

Đây là những gì chúng tôi sẽ đề cập:

  1. Giới thiệu về biến trong Python
    1. Phạm vi biến giải thích
  2. Cách tạo biến với phạm vi cục bộ
  3. Cách tạo biến với phạm vi toàn cầu
    1. Các global từ khóa

Biến trong Python là gì và bạn tạo chúng như thế nào? Giới thiệu cho người mới bắt đầu

Bạn có thể nghĩ về các biến như container lưu trữ.

Chúng là các thùng lưu trữ để chứa dữ liệu, thông tin và giá trị mà bạn muốn lưu vào bộ nhớ của máy tính. Sau đó, bạn có thể tham khảo hoặc thậm chí thao tác chúng tại một số thời điểm trong suốt vòng đời của chương trình.

Một biến có một ký hiệu Tênvà bạn có thể coi cái tên đó là nhãn mác trên bộ chứa lưu trữ đóng vai trò là mã định danh của nó.

Tên biến sẽ là một tham chiếu và con trỏ tới dữ liệu được lưu trữ bên trong nó. Vì vậy, không cần phải nhớ chi tiết dữ liệu và thông tin của bạn – bạn chỉ cần tham chiếu tên biến chứa dữ liệu và thông tin đó.

Khi đặt tên cho một biến, hãy đảm bảo rằng tên đó mô tả được dữ liệu mà nó chứa. Tên biến cần phải rõ ràng và dễ hiểu cho cả bản thân bạn trong tương lai và các nhà phát triển khác mà bạn có thể đang làm việc cùng.

Bây giờ, hãy xem cách thực sự tạo một biến trong Python.

Khi khai báo biến trong Python, bạn không cần chỉ định kiểu dữ liệu của chúng.

Ví dụ, trong ngôn ngữ lập trình C, bạn phải đề cập rõ ràng loại dữ liệu mà biến sẽ lưu giữ.

Vì vậy, nếu bạn muốn lưu trữ tuổi của mình là một số nguyên hoặc int gõ, đây là những gì bạn sẽ phải làm trong C:

#include <stdio.h>
 
int main(void)
{
  int age = 28;
  // 'int' is the data type
  // 'age' is the name 
  // 'age' is capable of holding integer values
  // positive/negative whole numbers or 0
  // '=' is the assignment operator
  // '28' is the value
}

Tuy nhiên, đây là cách bạn sẽ viết phần trên bằng Python:

age = 28

#'age' is the variable name, or identifier
# '=' is the assignment operator
#'28' is the value assigned to the variable, so '28' is the value of 'age'

Tên biến luôn ở phía bên trái và giá trị bạn muốn gán nằm ở phía bên phải sau toán tử gán.

Đọc thêm  Dòng mới của Python và cách in Python mà không cần dòng mới

Hãy nhớ rằng bạn có thể thay đổi giá trị của các biến trong suốt vòng đời của chương trình:

my_age = 28

print(f"My age in 2022 is {my_age}.")

my_age = 29

print(f"My age in 2023 will be {my_age}.")

#output

#My age in 2022 is 28.
#My age in 2023 will be 29.

Bạn giữ nguyên tên biến, my_agenhưng chỉ thay đổi giá trị từ 28 đến 29.

Phạm vi biến trong Python có nghĩa là gì?

Phạm vi biến đề cập đến các phần và ranh giới của chương trình Python nơi biến có sẵn, có thể truy cập và hiển thị.

Có bốn loại phạm vi cho các biến Python, còn được gọi là quy tắc LEGB:

  • lmắt mèo,
  • eđóng cửa,
  • gthùy,
  • built-in.

Trong phần còn lại của bài viết này, bạn sẽ tập trung vào việc tìm hiểu về cách tạo các biến có phạm vi toàn cục và bạn sẽ hiểu sự khác biệt giữa phạm vi biến cục bộ và biến toàn cầu.

Cách tạo biến với phạm vi cục bộ trong Python

Các biến được định nghĩa bên trong thân hàm có địa phương phạm vi, có nghĩa là chúng chỉ có thể truy cập được trong chức năng cụ thể đó. Nói cách khác, chúng là ‘cục bộ’ đối với chức năng đó.

Bạn chỉ có thể truy cập một biến cục bộ bằng cách gọi hàm.

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()


#output

#The best place to learn to code is with freeCodeCamp!

Hãy xem điều gì sẽ xảy ra khi tôi cố gắng truy cập biến đó với phạm vi cục bộ từ bên ngoài nội dung của hàm:

def learn_to_code():
    #create local variable
    coding_website = "freeCodeCamp"
    print(f"The best place to learn to code is with {coding_website}!")

#try to print local variable 'coding_website' from outside the function
print(coding_website)

#output

#NameError: name 'coding_website' is not defined

Nó nâng cao một NameError bởi vì nó không ‘hiển thị’ trong phần còn lại của chương trình. Nó chỉ ‘hiển thị’ trong chức năng mà nó được xác định.

Đọc thêm  Hàm Lambda trong Python – Cú pháp ví dụ

Cách tạo biến với phạm vi toàn cầu trong Python

Khi bạn xác định một biến ở ngoài một hàm, chẳng hạn như ở đầu tệp, nó có phạm vi toàn cục và được gọi là biến toàn cục.

Một biến toàn cục được truy cập từ bất kỳ đâu trong chương trình.

Bạn có thể sử dụng nó bên trong thân hàm, cũng như truy cập nó từ bên ngoài hàm:

#create a global variable
coding_website = "freeCodeCamp"

def learn_to_code():
    #access the variable 'coding_website' inside the function
    print(f"The best place to learn to code is with {coding_website}!")

#call the function
learn_to_code()

#access the variable 'coding_website' from outside the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

Điều gì xảy ra khi có một biến toàn cục và biến cục bộ và cả hai đều có cùng tên?

#global variable
city = "Athens"

def travel_plans():
    #local variable with the same name as the global variable
    city = "London"
    print(f"I want to visit {city} next year!")

#call function - this will output the value of local variable
travel_plans()

#reference global variable - this will output the value of global variable
print(f"I want to visit {city} next year!")

#output

#I want to visit London next year!
#I want to visit Athens next year!

Trong ví dụ trên, có thể bạn không mong đợi đầu ra cụ thể đó.

Có thể bạn nghĩ rằng giá trị của city sẽ thay đổi khi tôi gán cho nó một giá trị khác bên trong hàm.

Có thể bạn đã mong đợi điều đó khi tôi tham chiếu biến toàn cục với dòng print(f" I want to visit {city} next year!")đầu ra sẽ là #I want to visit London next year! thay vì #I want to visit Athens next year!.

Tuy nhiên, khi hàm được gọi, nó in ra giá trị của biến cục bộ.

Sau đó, khi tôi tham chiếu biến toàn cục bên ngoài hàm, giá trị được gán cho biến toàn cục đã được in ra.

Họ không can thiệp lẫn nhau.

Điều đó nói rằng, sử dụng cùng một tên biến cho các biến cục bộ và toàn cầu không được coi là một phương pháp hay nhất. Đảm bảo rằng các biến của bạn không có cùng tên, vì bạn có thể nhận được một số kết quả khó hiểu khi chạy chương trình của mình.

Làm thế nào để sử dụng global Từ khóa trong Python

Nếu bạn có một biến toàn cục nhưng muốn thay đổi giá trị của nó bên trong một hàm thì sao?

Hãy xem điều gì sẽ xảy ra khi tôi cố gắng làm điều đó:

#global variable
city = "Athens"

def travel_plans():
    #First, this is like when I tried to access the global variable defined outside the function. 
    # This works fine on its own, as you saw earlier on.
    print(f"I want to visit {city} next year!")

    #However, when I then try to re-assign a different value to the global variable 'city' from inside the function,
    #after trying to print it,
    #it will throw an error
    city = "London"
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#output

#UnboundLocalError: local variable 'city' referenced before assignment

Theo mặc định, Python cho rằng bạn muốn sử dụng một biến cục bộ bên trong một hàm.

Đọc thêm  Liệt kê mức độ hiểu trong Python được giải thích cho người mới bắt đầu

Vì vậy, khi tôi thử in giá trị của biến lần đầu tiên và sau đó gán lại giá trị cho biến mà tôi đang cố truy cập, Python bị lẫn lộn.

Cách để thay đổi giá trị của một biến toàn cục bên trong một hàm là sử dụng global từ khóa:

#global variable
city = "Athens"

#print value of global variable
print(f"I want to visit {city} next year!")

def travel_plans():
    global city
    #print initial value of global variable
    print(f"I want to visit {city} next year!")
    #assign a different value to global variable from within function
    city = "London"
    #print new value
    print(f"I want to visit {city} next year!")

#call function
travel_plans()

#print value of global variable
print(f"I want to visit {city} next year!")

Sử dụng global từ khóa trước khi tham chiếu nó trong hàm, vì bạn sẽ gặp lỗi sau: SyntaxError: name 'city' is used prior to global declaration.

Trước đó, bạn đã thấy rằng bạn không thể truy cập các biến được tạo bên trong các hàm vì chúng có phạm vi cục bộ.

Các global từ khóa thay đổi khả năng hiển thị của các biến được khai báo bên trong hàm.

def learn_to_code():
   global coding_website
   coding_website = "freeCodeCamp"
   print(f"The best place to learn to code is with {coding_website}!")

#call function
learn_to_code()

#access variable from within the function
print(coding_website)

#output

#The best place to learn to code is with freeCodeCamp!
#freeCodeCamp

Phần kết luận

Và bạn có nó rồi đấy! Bây giờ bạn đã biết kiến ​​thức cơ bản về biến toàn cục trong Python và có thể cho biết sự khác biệt giữa biến cục bộ và biến toàn cục.

Tôi hy vọng bạn tìm thấy bài viết này hữu ích.

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem Chứng chỉ Máy tính Khoa học với Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.

Cảm ơn đã đọc và mã hóa hạnh phúc!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status