类型提示:函数需要带有以下必需键的dict

时间:2017-11-02 20:35:29

标签: python python-3.x type-hinting mypy

是否可以在mypyPython3.6+或其任何扩展中指定我的函数可以将任何dict作为参数,只要它具有特定的键?如果存在假设类型Record 对于例如

def full_name(my_dict: Record[first_name: str, last_name: str]) -> str:
  return my_dict['last_name'] + ',' + my_dict['first_name']

valid_dict = {'first_name': 'John', 'last_name': 'Doe'}
big_and_valid_dict = {'first_name': 'Matt', 'last_name': 'Legi', 'age': 32}
invalid_dict1 = {'first_name': 'BadName'} # No 'last_name' key
invalid_dict2 = {'no_name': 'NoName'} # none of the specified keys

因此,静态分析应报告以下内容

full_name(valid_dict) # => works
full_name(big_and_valid_dict) # => works
full_name(invalid_dict1) # => error
full_name(invalid_dict2) # => error

0 个答案:

没有答案