阅读本文你甚至不需要2.33分钟
这只是用来自娱自乐的。
你需要什么
Python 3.5+
因为类型"声明"是Python3.5之后才加的特性
Python什么的对于类型真是太不友好了。由于动态类型的原因一旦遇到返回一些元组类型的东西你就没法写类型了。
比如这样的代码。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
智能提示,不存在的。
plt.subplots的返回值是这样的:
Tuple[Any, Any]
返回两个Any类型的元组。你用任何智能or不智能IDE/Editor都不能给你相关的函数提示的。
怎么办呢,我们先找到他们的类型
print(type(ax))
得到的是这么个结果
居然带下划线emmmm(说明人家甚至不想让你调用)
点开后matplotlib.axes._subplots发现甚至没有AxesSubplot这个类
不过……有一个factory的函数,这就很有意思了。
说明是调用这个函数然后new了一个(啊呸,python哪来的new)
"新建"了一个type叫做 %sSubplot的,%s的内容当然就是Axes了。
看到这样的代码当然是大胆用Axes作为ax的类型了(逃
后者是matplotlib.axes的Axes。大胆在上面import以后。。。
你就可以使用了。。。
再给个例子。。。用上pickle的
这个是sklearn的svm里面的回归分析的SVC分类器
这个pickle是什么我今天才知道的。但是见到用法以后立马就知道这是干嘛用的了。而且完全可以这样序列化和反序列化,甚至把这个过程保存到文件里面,再读取回来。
什么,你说你的类型声明这里没有颜色高亮?
在设置里面
Editor-> Color Scheme -> Python
Class definition
Type annotations
或者直接点击代码块里面的Foo和List 然后把颜色改了。把A9B7C6的默认颜色(为什么我记这个数字这么熟练啊)
改成你喜欢的颜色就好了。
最后,感谢一下Mor♂Van的Python教程。让我这个啥都不会的小白都能看得懂python科学计算+机器学习是怎么玩的。MorvanZhou/tutorials
你学会了什么
学会了假装写有类型的变量,也许可以拿来装……