2016-06-01 22 views
6

Trong một chuỗi tài liệu Python, cách tài liệu :rtype: cho một hàm có thể trả về nhiều loại dữ liệu có thể?Tôi làm cách nào để ghi lại: rtype: cho hàm trả về nhiều loại dữ liệu có thể?

Ví dụ: nếu một hàm có thể trả về defaultdict HOẶC dict HOẶC list, dựa trên thông số chức năng, bạn làm cách nào để ghi lại điều này?

Mã dụ:

from collections import defaultdict 

def read_state(state_file, state_file_type='defaultdict'): 
    """Deserialize state file or create empty state and return it. 

    :param state_file: The path and file name of state file to read. 
    :type state_file: str 
    :param state_file_type: Data type in which state is stored. 
    :type state_file_type: str 
    :return: Current or new empty state. 
    :rtype: ????? 
    """ 
    if os.path.exists(state_file): 
     with open(state_file) as conf_fo: 
      state = json.load(conf_fo) 
    elif state_file_type == 'defaultdict': 
     state = defaultdict(lambda: defaultdict(list)) 
    elif state_file_type == 'dict': 
     state = {} 
    elif state_file_type == 'list': 
     state = [] 
    else: 
     raise TypeError("State file type not defined.") 
    return state 

Trả lời

7

Bạn có thể sử dụng 'hay 'rõ ràng trong rtype

:rtype: collections.defaultdict or dict or list 

biến thể

:rtype: collections.defaultdict | dict | list 
Các vấn đề liên quan