Giả sử tôi có một chức năng:Làm thế nào để bỏ qua đầu ra của một hàm đa đầu ra trong Python?
def f():
...
...
...
return a,b,c
và tôi muốn để có được chỉ b ở đầu ra của hàm. Tôi phải sử dụng bài tập nào?
Cảm ơn.
Giả sử tôi có một chức năng:Làm thế nào để bỏ qua đầu ra của một hàm đa đầu ra trong Python?
def f():
...
...
...
return a,b,c
và tôi muốn để có được chỉ b ở đầu ra của hàm. Tôi phải sử dụng bài tập nào?
Cảm ơn.
Bạn có thể giải nén các tuple trở thành một số biến giả:
_, keep_this, _ = f()
Nó không phải là _
, chỉ cần một cái gì đó rõ ràng là không sử dụng.
(Không sử dụng _
như một tên giả trong thông dịch viên tương tác, có nó được sử dụng để giữ kết quả cuối cùng.)
Ngoài ra, chỉ số các tuple trả về:
keep_this = f()[1]
Điều bạn đang làm với đường dây return a,b,c
đang tạo một tuple
và sau đó trả lại từ chức năng. Vì vậy, bạn có thể sử dụng deconstruction tuple để chỉ nhận được các giá trị bạn muốn từ kết quả. Ví dụ:
def f(x):
return x, x + 1, x + 2
_, b, _ = f(0)
print(b) # prints "1"
def f():
return 1,2,3
đây, f()
trả về một tuple (1,2,3)
để bạn có thể làm điều gì đó như thế này:
a = f()[0]
print a
1
a = f()[1]
print a
2
a = f()[2]
print a
3
đánh bại tôi vào nó bằng một vài giây! Darn! – feralin
Tôi không thể tìm thấy bất kỳ tài liệu nào cho các biến giả. Có giúp gì không? – Cupitor
@Naji về cơ bản, mã nào được gán cho ba phần của bộ tuple thành ba biến. Một dấu gạch dưới đơn là một tên biến hợp lệ và nó có thể được gán nhiều lần trong một phép gán destructuring. Vì vậy, khi nhiệm vụ đó hoàn tất, bạn sẽ có hai biến: keep_this, bằng giá trị trung bình trong bộ tuple và _, mà (nếu tôi đúng) bằng giá trị cuối cùng trong bộ dữ liệu. Bạn nên tra cứu nhiệm vụ phá hoại để tìm hiểu thêm. – feralin