在阅读别人的源码的时候, 发现他大量的使用了这种方式定义函数:
@property
def attrs(self) -> _Attrs:
pass
不知道其中的@property
和 -> _Attrs:
是做什么用的? 请问哪里有相关的说明?
感谢.
在阅读别人的源码的时候, 发现他大量的使用了这种方式定义函数:
@property
def attrs(self) -> _Attrs:
pass
不知道其中的@property
和 -> _Attrs:
是做什么用的? 请问哪里有相关的说明?
感谢.
-> 第三方庫mypy, 要梯子:
http://mypy-lang.org
用于告訴python vm 涵數(x)的variable type和返回type, python 可以
dynamic and static typing 混合使用
以下是部份官方內容:
Migrate existing code to static typing, a function at a time. You can freely mix static and dynamic typing within a program, within a module or within an expression. No need to give up dynamic typing — use static typing when it makes sense. Often just adding function signatures gives you statically typed code. Mypy can infer the types of other variables.
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答974 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
关于@property
这是一个python面向对象的编程问题,比较简单:
比如,python类中,我想要访问、设置私有变量,可以通过和C++类似的方式,如:
不过,这样看起来有些麻烦,实际上python获取、设置类的变量(非私有变量)可以直接通过如下方式:
这样看起来是不是很简单?但是也有危险,这样对于类的变量的赋值的类型是不可确定的,无法对变量赋值类型进行检查限制,比如可以赋值为整数、字符串、boolean变量等。想要实现这样获取值、赋值,也不是不行,通过
@property
就可以实现:参考:廖雪峰的python教程--使用@property
关于
-> _Attrs
->
常常出现在python函数定义的函数名后面,为函数添加元数据
,描述函数的返回类型,从而方便开发人员使用。比如:这里面,元数据表明了函数的返回值为int类型。
至于楼主问题中的,
-> _Attr
则表明函数返回的是一个外部可访问的类的私有变量。参考:给函数参数增加元信息