Xuất hàm python thành biến

💬 câu hỏi. Cách trả về biến toàn cục từ hàm Python. Và làm thế nào để trả về một biến cục bộ?

Trước tiên, hãy xem hình tổng quan cho biết cách trả về biến cục bộ và biến toàn cục từ hàm Python bằng một ví dụ đơn giản

Xuất hàm python thành biến

Hãy đi sâu vào ví dụ này chi tiết hơn và trả lời câu hỏi về cách trả về biến cục bộ trước. Sau đó, chúng ta sẽ tìm hiểu cách trả về một biến toàn cục từ một hàm bằng cách xây dựng dựa trên những gì chúng ta đã học. 👇

Trả về biến cục bộ từ hàm

Nếu bạn gán giá trị cho một biến bên trong phạm vi hàm, Python sẽ tạo một biến cục bộ mới. Biến cục bộ mới này sẽ được tạo ngay cả khi bạn đã xác định cùng một biến bên ngoài phạm vi chức năng

🐍 Thay đổi biến cục bộ không làm thay đổi biến toàn cục. Thay đổi chỉ hiển thị bên trong phạm vi chức năng. Biến cục bộ làm lu mờ biến toàn cục

Ví dụ sau đây cho thấy cách bạn có thể tạo và trả về biến cục bộ x = 'alice' từ một hàm làm lu mờ biến toàn cục

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
0

x = 42

def f():
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: 42 - no it has not changed.

🌍 Hướng dẫn đề xuất. Không gian tên Python được thực hiện đơn giản

Trả về một biến toàn cục từ một hàm

Để trả về một biến toàn cục

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1 từ một hàm Python, hãy thêm dòng
x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
2 bên trong phạm vi hàm. Mỗi lần bạn đọc hoặc ghi biến bên trong hàm sau dòng này, bạn sẽ đọc hoặc ghi biến toàn cục. Để trả về biến toàn cục thì chỉ cần viết
x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
3

Đoạn mã sau cho thấy việc thay đổi biến toàn cục bên trong hàm có tác dụng phụ, tôi. e. , có thể thấy từ bên ngoài trái ngược với ví dụ trước khi thay đổi biến cục bộ

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1 bên trong hàm không ảnh hưởng đến biến toàn cục
x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.

🌍 Hướng dẫn đề xuất. Tên phương thức bí danh Python

Ví dụ – Phân tích phạm vi cục bộ và toàn cục

Để kiểm tra phạm vi cục bộ và toàn cầu, tôi. e. , biến nào được xác định cục bộ và toàn cầu, bạn có thể sử dụng hàm

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1 như vậy

x = 42

def f():
    
    print(dir())
    # []
    
    global x
    x = 'alice'
    
    print(dir())
    # []
    
    return x

print(dir())
# ['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'f', 'x']

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.

Điều này cho thấy phạm vi cục bộ không thay đổi bên trong hàm vì Python hoạt động trên biến toàn cục

Lưu ý rằng nếu không có định nghĩa

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
2 bên trong hàm, thì biến
x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1 trên thực tế sẽ là một biến cục bộ như có thể thấy trong vùng được đánh dấu

x = 42

def f():
    
    print(dir())
    # []
    
    x = 'alice'
    
    print(dir())
    # ['x']
    
    return x

print(dir())
# ['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'f', 'x']

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.

Được rồi, hãy kết thúc hướng dẫn này bằng một bản tóm tắt ngắn về hàm

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
4 để học và dễ hiểu đoạn mã trước

Python dir() Tóm tắt

Xuất hàm python thành biến

Nếu được sử dụng mà không có đối số, hàm

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
4 tích hợp sẵn của Python sẽ trả về hàm và tên biến được xác định trong phạm vi cục bộ—không gian tên của mô-đun hiện tại của bạn

Nếu được sử dụng với đối số đối tượng,

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
6 trả về danh sách tên thuộc tính và phương thức được xác định trong phạm vi của đối tượng

Do đó,

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
4 trả về tất cả các tên trong một phạm vi nhất định

🌍 Hướng dẫn đề xuất. Python dir() — Hướng dẫn đơn giản bằng video

Tóm lược

Theo mặc định, Python trả về các biến trong phạm vi cục bộ, không phải trong phạm vi toàn cầu. Để trả về một biến toàn cục

x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
1 một cách rõ ràng, hãy sử dụng dòng
x = 42

def f():
    global x
    x = 'alice'
    return x

print(f())
# alice

# Has the global variable x changed?
print(x)
# Output: alice - yes it has changed.
2 trước khi thay đổi hoặc trả về nó từ hàm

🌍 Hướng dẫn đề xuất. Cách sử dụng biến toàn cục trong hàm Python?


Cảm ơn đã đọc hướng dẫn này. ❤️ Vui lòng tham gia học viện email miễn phí của tôi và tải xuống các bảng gian lận Python của chúng tôi để đạt hiệu quả học tập tối đa (Tôi là người Đức, vì vậy tôi rất quan tâm đến hiệu quả). 😉

Xuất hàm python thành biến

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Hàm có thể in đầu ra và trả về giá trị không?

Bạn không chỉ có thể truyền giá trị tham số vào hàm, hàm còn có thể tạo ra giá trị . Bạn đã thấy điều này trong một số chức năng trước đây mà bạn đã sử dụng. Ví dụ: len lấy một danh sách hoặc chuỗi làm giá trị tham số và trả về một số, độ dài của danh sách hoặc chuỗi đó.

Làm cách nào để đặt đầu ra của hàm thành một biến trong Python?

Chỉ cần gán một hàm cho biến mong muốn nhưng không có () i. e. chỉ với tên của chức năng . Nếu biến được gán với hàm cùng với dấu ngoặc (), Không có gì sẽ được trả về. Ví dụ. Python3.