Hướng dẫn python call global variable in function - python gọi biến toàn cục trong hàm


Biến toàn cầu

Các biến được tạo ra bên ngoài một hàm (như trong tất cả các ví dụ trên) được gọi là các biến toàn cầu.

Các biến toàn cầu có thể được sử dụng bởi tất cả mọi người, cả bên trong các chức năng và bên ngoài.

Thí dụ

Tạo một biến bên ngoài hàm và sử dụng nó bên trong hàm

x = "tuyệt vời"

def myfunc (): & nbsp; in ("Python là" + x)
  print("Python is " + x)

myfunc()

Hãy tự mình thử »

Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu.

Thí dụ

Tạo một biến bên ngoài hàm và sử dụng nó bên trong hàm

x = "tuyệt vời"

def myfunc (): & nbsp; in ("Python là" + x)
  x = "fantastic"
  print("Python is " + x)

myfunc()

Hãy tự mình thử »

Hãy tự mình thử »



Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu.

Tạo một biến bên trong một hàm, với cùng tên với biến toàn cầu

def myfunc (): & nbsp; x = "tuyệt vời" & nbsp; in ("Python là" + x)

Thí dụ

Tạo một biến bên ngoài hàm và sử dụng nó bên trong hàm

x = "tuyệt vời"
  global x
  x = "fantastic"

myfunc()

Hãy tự mình thử »

Hãy tự mình thử »

Nếu bạn tạo một biến có cùng tên bên trong một hàm, biến này sẽ là cục bộ và chỉ có thể được sử dụng bên trong hàm. Biến toàn cầu có cùng tên sẽ vẫn như vậy, toàn cầu và với giá trị ban đầu.

Tạo một biến bên trong một hàm, với cùng tên với biến toàn cầu

def myfunc (): & nbsp; x = "tuyệt vời" & nbsp; in ("Python là" + x)

x = "tuyệt vời"

def myfunc (): & nbsp; in ("Python là" + x)
  global x
  x = "fantastic"

myfunc()

Hãy tự mình thử »

Hãy tự mình thử »



Nếu tôi tạo một biến toàn cầu trong một hàm, làm thế nào tôi có thể sử dụng biến đó trong một hàm khác?

Chúng ta có thể tạo một toàn cầu với chức năng sau:

def create_global_variable():
    global global_variable # must declare it to be a global first
    # modifications are thus reflected on the module's global scope
    global_variable = 'Foo' 

Viết một chức năng không thực sự chạy mã của nó. Vì vậy, chúng tôi gọi hàm

>>> create_global_variable()
6:

>>> create_global_variable()

Sử dụng Globals mà không cần sửa đổi

Bạn chỉ có thể sử dụng nó, miễn là bạn không mong đợi thay đổi đối tượng mà nó chỉ vào:

Ví dụ,

def use_global_variable():
    return global_variable + '!!!'

Và bây giờ chúng ta có thể sử dụng biến toàn cầu:

>>> use_global_variable()
'Foo!!!'

Sửa đổi biến toàn cầu từ bên trong một hàm

Để trỏ biến toàn cầu ở một đối tượng khác, bạn được yêu cầu sử dụng từ khóa toàn cầu một lần nữa:

def change_global_variable():
    global global_variable
    global_variable = 'Bar'

Lưu ý rằng sau khi viết chức năng này, mã thực sự thay đổi nó vẫn chưa chạy:

>>> use_global_variable()
'Foo!!!'

Vì vậy, sau khi gọi chức năng:

>>> change_global_variable()

Chúng ta có thể thấy rằng biến toàn cầu đã được thay đổi. Tên

>>> create_global_variable()
7 hiện chỉ vào
>>> create_global_variable()
8:

>>> use_global_variable()
'Bar!!!'

Lưu ý rằng "toàn cầu" trong Python không thực sự toàn cầu - nó chỉ là toàn cầu đối với cấp độ mô -đun. Vì vậy, nó chỉ có sẵn cho các chức năng được viết trong các mô -đun mà nó là toàn cầu. Các chức năng ghi nhớ mô -đun mà chúng được viết, vì vậy khi chúng được xuất sang các mô -đun khác, chúng vẫn nhìn vào mô -đun mà chúng được tạo để tìm các biến toàn cầu.

Các biến cục bộ có cùng tên

Nếu bạn tạo một biến cục bộ có cùng tên, nó sẽ làm lu mờ một biến toàn cầu:

def use_local_with_same_name_as_global():
    # bad name for a local variable, though.
    global_variable = 'Baz' 
    return global_variable + '!!!'

>>> use_local_with_same_name_as_global()
'Baz!!!'

Nhưng việc sử dụng biến cục bộ bị tên là không thay đổi biến toàn cầu:

>>> use_global_variable()
'Bar!!!'

Lưu ý rằng bạn nên tránh sử dụng các biến cục bộ có cùng tên với Globals trừ khi bạn biết chính xác những gì bạn đang làm và có một lý do rất chính đáng để làm như vậy. Tôi chưa gặp phải một lý do như vậy.

Chúng tôi có được hành vi tương tự trong các lớp học

Theo dõi bình luận hỏi:

Phải làm gì nếu tôi muốn tạo một biến toàn cầu bên trong một hàm bên trong một lớp và muốn sử dụng biến đó bên trong một hàm khác bên trong một lớp khác?

Ở đây tôi chứng minh rằng chúng ta có được hành vi tương tự trong các phương pháp như chúng ta thực hiện trong các chức năng thông thường:

>>> create_global_variable()
0

Và bây giờ:

>>> create_global_variable()
1

Nhưng tôi sẽ đề xuất thay vì sử dụng các biến toàn cầu bạn sử dụng các thuộc tính lớp, để tránh làm lộn xộn không gian tên mô -đun. Cũng lưu ý rằng chúng tôi không sử dụng các đối số

>>> create_global_variable()
9 ở đây - đây có thể là các phương thức lớp (tiện dụng nếu biến đổi thuộc tính lớp từ đối số
def use_global_variable():
    return global_variable + '!!!'
0 thông thường) hoặc phương thức tĩnh (không
>>> create_global_variable()
9 hoặc
def use_global_variable():
    return global_variable + '!!!'
0).

Tôi có thể gọi biến toàn cầu trong chức năng Python không?

Các biến toàn cầu có thể được sử dụng bởi tất cả mọi người, cả bên trong các chức năng và bên ngoài..

Làm thế nào để bạn chuyển một biến toàn cầu cho một hàm trong Python?

Sử dụng từ khóa toàn cầu † để sửa đổi biến toàn cầu bên trong một hàm.Nếu chức năng của bạn có một biến cục bộ có cùng tên với biến toàn cầu và bạn muốn sửa đổi chức năng biến toàn cầu bên trong thì hãy sử dụng từ khóa 'toàn cầu' trước tên biến khi bắt đầu chức năng, tức là.. If your function has a local variable with same name as global variable and you want to modify the global variable inside function then use 'global' keyword before the variable name at start of function i.e.

Làm thế nào bạn có thể truy cập một biến toàn cầu bên trong hàm?

Các quy tắc của từ khóa toàn cầu Khi chúng ta tạo một biến bên trong một hàm, nó là cục bộ theo mặc định.Khi chúng tôi xác định một biến bên ngoài một hàm, nó là toàn cầu theo mặc định.Bạn không phải sử dụng từ khóa toàn cầu.Chúng tôi sử dụng từ khóa toàn cầu để đọc và viết một biến toàn cầu bên trong một hàm.use global keyword to read and write a global variable inside a function.

Làm thế nào để bạn truy cập một biến bên trong một hàm trong Python?

Các biến được xác định bên trong các phương thức chỉ có thể được truy cập trong phương thức đó chỉ bằng cách sử dụng tên biến.Ví dụ - var_name.Nếu bạn muốn sử dụng biến đó bên ngoài phương thức hoặc lớp, bạn phải khai báo biến đó là toàn cầu.using the variable name. Example – var_name. If you want to use that variable outside the method or class, you have to declared that variable as a global.