功能标注类型规范
typespec的Python项目详细描述
typespec
==
typespec是两件事:
1。函数注释的格式规范。用于分析遵循此规范的批注的模块。
typespec格式
----
typespec格式使用标准的python数据结构来指定对象类型。可以识别以下类型:
*``str`-这是人类可读的文档。
*``type`-这是一种类型/类,一致性对象可以是其实例。如果对象是指定类型之一的实例或通过验证类的验证,则该对象符合类型规范。
*`` tuple``这是其他str、类型和tuple的组合。分组类型和未分组类型之间没有语义差异,但分组str是仅适用于同一分组中的类型的文档。
~~~~~~~~~~~~~~~
仅限人类可读文档-未定义类型限制::
"值的某些描述"
>必须是字符串的值::
记录的字符串值:
(str,"字符串内容含义的描述")
可以是字符串或数字的值:
(str,int,float)
是一个字符串或带有特定类型文档的数字:
(
(str,"字符串内容含义的描述"),
(int,float,"数字代表什么?")
)
验证类
~~~~~~~~~~~~~~~~~~~~~~~~~
有时需要检查的不仅仅是对象的类型。
为此,可以在类型规范中定义和使用验证类。
validati在类上是具有"validate"方法的类。
在根据验证类验证对象之前,会检查
对象是否是验证类的基类(validationClass.\u base)的实例。为了验证一个值,validation类被
作为唯一的参数用该对象实例化(所以它应该有一个
`````````````in it``方法定义,比如:``def```init``(self,val):```),然后在生成的ob上调用
```````validate``方法对象。
如果返回真值,则视为对象有效,否则视为无效。
示例:
类positivefloat(float):
定义验证(self):
返回self>;0.0
类positivenumber(object):
定义初始化(self,val):
self.val=val
定义验证(self):
如果是实例(self.val,int):
返回正数(self.val)。
如果是实例(self.val,float):
返回正数(self.val)。 类单字符字符串(str):
定义验证(self):
返回len(self)==1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类型规范可用于函数批注。对于参数注释,它指定参数的类型。对于返回注释,它指定返回/产生的对象的类型。
示例:
def add_chars(
a:singlecharacterstring,
b:singlecharacterstring)->;singlecharacterstring:
'
添加2个字符的序数值,并返回具有该序数值的字符。
'
返回chr(ord(a)+ord(b))
def sum(a:(int,float),b:(int,float))->;float:
返回float(a+b)
def install_python(
路径:(str,"python应该安装到的文件路径"),
版本:(str,"python要安装的版本")="3.2"
)->;(bool,"true"如果成功,则为False(如果不成功):python安装代码yield ord(c)
typespec模块
----
typespec模块提供简单实用程序,用于根据
typespec验证值。
根据类型规范检查对象:
>;在类型规范typespec((int,float))中使用in运算符
>;>1
true
>;>;"hello"在类型规范typespec((int,float))
false
列出typespec中的类型::
>;>;>;只需遍历typespec对象
>;>;已排序(typespec.typespec中t的t.\u name\uu((int,str,"doc"))
['int,'str']
文档:
>>>使用doc方法
>;typespec.typespec("某些文档").doc()
"某些文档"
>>>我的规范=typespec.typespec((
…(str,"字符串内容含义的描述"),
…(int,float,"数字代表什么?")
…)
>;>my_spec.doc()
"
>;>my_spec.doc(str)
‘字符串内容含义的描述’
>;>my_spec.doc(int)
‘数字代表什么?’
>>>我的说明文档(浮动)
"数字代表什么?"
有关更多详细信息,请参阅模块文档。
==
typespec是两件事:
1。函数注释的格式规范。用于分析遵循此规范的批注的模块。
typespec格式
----
typespec格式使用标准的python数据结构来指定对象类型。可以识别以下类型:
*``str`-这是人类可读的文档。
*``type`-这是一种类型/类,一致性对象可以是其实例。如果对象是指定类型之一的实例或通过验证类的验证,则该对象符合类型规范。
*`` tuple``这是其他str、类型和tuple的组合。分组类型和未分组类型之间没有语义差异,但分组str是仅适用于同一分组中的类型的文档。
~~~~~~~~~~~~~~~
仅限人类可读文档-未定义类型限制::
"值的某些描述"
>必须是字符串的值::
记录的字符串值:
(str,"字符串内容含义的描述")
可以是字符串或数字的值:
(str,int,float)
是一个字符串或带有特定类型文档的数字:
(
(str,"字符串内容含义的描述"),
(int,float,"数字代表什么?")
)
验证类
~~~~~~~~~~~~~~~~~~~~~~~~~
有时需要检查的不仅仅是对象的类型。
为此,可以在类型规范中定义和使用验证类。
validati在类上是具有"validate"方法的类。
在根据验证类验证对象之前,会检查
对象是否是验证类的基类(validationClass.\u base)的实例。为了验证一个值,validation类被
作为唯一的参数用该对象实例化(所以它应该有一个
`````````````in it``方法定义,比如:``def```init``(self,val):```),然后在生成的ob上调用
```````validate``方法对象。
如果返回真值,则视为对象有效,否则视为无效。
示例:
类positivefloat(float):
定义验证(self):
返回self>;0.0
类positivenumber(object):
定义初始化(self,val):
self.val=val
定义验证(self):
如果是实例(self.val,int):
返回正数(self.val)。
如果是实例(self.val,float):
返回正数(self.val)。
定义验证(self):
返回len(self)==1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类型规范可用于函数批注。对于参数注释,它指定参数的类型。对于返回注释,它指定返回/产生的对象的类型。
示例:
def add_chars(
a:singlecharacterstring,
b:singlecharacterstring)->;singlecharacterstring:
'
添加2个字符的序数值,并返回具有该序数值的字符。
'
返回chr(ord(a)+ord(b))
def sum(a:(int,float),b:(int,float))->;float:
返回float(a+b)
def install_python(
路径:(str,"python应该安装到的文件路径"),
版本:(str,"python要安装的版本")="3.2"
)->;(bool,"true"如果成功,则为False(如果不成功):python安装代码yield ord(c)
typespec模块
----
typespec模块提供简单实用程序,用于根据
typespec验证值。
根据类型规范检查对象:
>;在类型规范typespec((int,float))中使用in运算符
>;>1
true
>;>;"hello"在类型规范typespec((int,float))
false
列出typespec中的类型::
>;>;>;只需遍历typespec对象
>;>;已排序(typespec.typespec中t的t.\u name\uu((int,str,"doc"))
['int,'str']
文档:
>>>使用doc方法
>;typespec.typespec("某些文档").doc()
"某些文档"
>>>我的规范=typespec.typespec((
…(str,"字符串内容含义的描述"),
…(int,float,"数字代表什么?")
…)
>;>my_spec.doc()
"
>;>my_spec.doc(str)
‘字符串内容含义的描述’
>;>my_spec.doc(int)
‘数字代表什么?’
>>>我的说明文档(浮动)
"数字代表什么?"
有关更多详细信息,请参阅模块文档。