Python3:跨文件的NewType

时间:2018-06-27 15:45:06

标签: python-3.x

我不是python专家,但我使用它。

我想开始使我的代码更具语义。 所以假设我有一个功能

def xml_to_csv(xml, csv):
    ...

我想做类似的事情:

def xml_to_csv(xml:FileName, csv:FileName) -> None:
    ...

我可以通过以下方式通过静态类型检查器:

from typing import NewType
FileName = NewType('FileName', str)

所以我的问题是:

  1. 这样做有意义吗?
  2. 如果确实有道理,我如何让定义的类型遍历多个文件?

1 个答案:

答案 0 :(得分:1)

请确保没有任何意义,因为您的FileName可能始终是字符串类型,但是如果要添加注释,则可以使用类似的内容。

def xml_to_csv(xml: ('FileName', str), csv: 'FileName') -> None:
    ...

print(xml_to_csv.__annotations__)

输出:

{'xml': ('FileName', <class 'str'>), 'csv': 'FileName', 'return': None}