Từ các tài liệu
Lớp
1>>> def foo[a:str] -> list: ... return["Works"] ... >>> foo[1] 'Works'
Loại công đoàn; Liên minh [X, Y] có nghĩa là X hoặc Y.Union[X, Y] means either X or Y.
Do đó, cách thích hợp để thể hiện nhiều hơn một loại dữ liệu trả về
from typing import Union
def foo[client_id: str] -> Union[list,bool]
Nhưng đừng lưu ý rằng việc gõ không được thực thi. Python tiếp tục vẫn là một ngôn ngữ được gõ động. Cú pháp chú thích đã được phát triển để giúp phát triển mã trước khi được phát hành vào sản xuất. Như PEP 484 tuyên bố, "Không có loại kiểm tra nào xảy ra vào thời gian chạy."
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
Như bạn có thể thấy tôi đang vượt qua một giá trị INT và trả lại một str. Tuy nhiên,
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
2 sẽ được đặt thành các giá trị tương ứng.>>> foo.__annotations__
{'return': , 'a': }
Vui lòng đi qua PEP 483 để biết thêm về Gợi ý loại. Cũng xem các gợi ý loại trong Python 3.5 là gì ??
Vui lòng lưu ý rằng điều này chỉ có sẵn cho Python 3,5 trở lên. Điều này được đề cập rõ ràng trong PEP 484.Python 3.5 and upwards. This is mentioned clearly in PEP 484.
Từ Python 3.10 trở đi, có một cách mới để đại diện cho liên minh này. Xem Loại Liên minh:
Một đối tượng Liên minh giữ giá trị của | [BitWise hoặc] Hoạt động trên nhiều đối tượng loại. Những loại này được dự định chủ yếu cho các chú thích loại. Biểu thức loại liên minh cho phép loại cú pháp gợi ý loại sạch hơn so với gõ.union.
Như chúng ta có thể thấy, điều này hoàn toàn giống với
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
1 trong các phiên bản trước. Ví dụ trước của chúng tôi có thể được sửa đổi để sử dụng ký hiệu này:def foo[client_id: str] -> list | bool:
Bài viết này mô tả cách trả về nhiều giá trị từ một hàm trong Python.
- Trả về nhiều giá trị bằng dấu phẩy
- Trả lại
4>>> def foo[a:str] -> list: ... return["Works"] ... >>> foo[1] 'Works'
Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.
- Xác định và gọi các chức năng trong Python [def, return]
Trả về nhiều giá trị bằng dấu phẩy
Trả lại
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
4Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.
def test[]:
return 'abc', 100
Xác định và gọi các chức năng trong Python [def, return]
Trong Python, bạn có thể trả về nhiều giá trị bằng cách đơn giản là chúng được phân tách bằng dấu phẩy.
Built-in Types - Tuples — Python 3.7.4 documentation
- Ví dụ, xác định một hàm trả về một chuỗi và số nguyên như sau:
result = test[]
print[result]
print[type[result]]
# ['abc', 100]
#
Trong Python, các giá trị phân tách bằng dấu phẩy được coi là các bộ đếm không có dấu ngoặc đơn, ngoại trừ khi được yêu cầu bởi cú pháp. Vì lý do này, hàm trong ví dụ trên trả về một tuple với mỗi giá trị dưới dạng một phần tử.
print[result[0]]
print[type[result[0]]]
# abc
#
print[result[1]]
print[type[result[1]]]
# 100
#
Lưu ý rằng đó thực sự là dấu phẩy tạo ra một tuple, không phải dấu ngoặc đơn. Các dấu ngoặc đơn là tùy chọn, ngoại trừ trong trường hợp tuple trống hoặc khi chúng cần thiết để tránh sự mơ hồ của cú pháp. Các loại tích hợp - Tuples - Python 3.7.4 Tài liệu
# print[result[2]]
# IndexError: tuple index out of range
Một tuple với một yếu tố yêu cầu một dấu phẩy trong Python
- Mỗi phần tử có một loại được xác định trong hàm.
a, b = test[]
print[a]
# abc
print[b]
# 100
Tất nhiên, việc chỉ định một chỉ mục vượt quá số lượng giá trị trả về được xác định làm tăng lỗi.
def test2[]:
return 'abc', 100, [0, 1, 2]
a, b, c = test2[]
print[a]
# abc
print[b]
# 100
print[c]
# [0, 1, 2]
Trả lại >>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
4
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.
>>> def foo[a:str] -> list:
... return["Works"]
...
>>> foo[1]
'Works'
0