pycahrm使用docstrings来指定变量类型、返回值类型、函数参数类型
py里面不需要显示声明类型,这和java c这些静态语言不同,虽然python这样做少了一些代码和写代码的困难度,但还是非常多的弊端的,运行速度 代码安全, 这些都是语言本身带来的本的弊端,这些没办法没办法弥补(说用c扩展和加入大量if isinstance来判断类型的,这是不好的不方便的)。但下面这两种却是可以通过docstrings来弥补的。
1.没有类型就给函数(或者方法)调用者带来麻烦,这个函数怎么用,这个参数代表什么,需要传一个什么样的参数来调用这个函数,函数返回什么东西,这都对代码阅读者和函数使用者带来很大麻烦。
2.没有类型就得不到第三方编辑器的有力提示和自动补全补全,pycharm不知道这个变量是个什么类型的对象,还咋能通过 点号 来补全呢,代码不能补全和智能提示,那用第三方ide工具和使用vim 记事本有什么区别。除了内置的int float str list什么的对象,可能会比较熟悉他们的一些方法,当大量使用自定义的calss类型时候,不能补全和提示是个灾难。至于有些qq群友说用一直vim写几千行代码的文件,说什么自己是大牛,不屑使用第三方ide工具,对这种纯粹的装逼犯我就不想说什么了。
在python3.6里面可以使用新的语法格式来指明函数的参数和返回类型
例如
def func(x: int ) -> str:
psss
这样做了不仅有利于阅读传什么返回什么,更是有利于编辑器自动推断类型达到代码补全的目的,这里的指定类型可以是python自带的内置类型 int dict list什么的,也可以是第三方库的类的类型,也可以是自己定义的类的类型。
在py3.6中这么使用如图,但除了函数参数和返回类型外,本地变量可以借助docstring来完成。

在py2里面不能使用上面的语法,可以使用dcostings来解决。
def func(x,y):
"""
:type x: list ##参数类型
:type y: str
:rtype :dict ###返回值类型
"""
z = funxxxxxxxxxxxxxx()
""":type :set""" ###指定本地变量的类型 z.add() x.append() func([2,3],4).popitem() ###此处也是自动补全的
这样做了以后,就更清晰了,那么调用这个func时候,就会知道要传什么类型的参数了,返回什么类型的结果。更为有利的是只需要敲入一个x.a就能自动补全成x.append了。同理y z func的结果都可以补全。
包括自定义的类也是可以指定的,下图这个cu参数是一个Chinaunicome的类的实例,如果不指定类型,很多很长的方法要手写。一旦方法拼错了,这个对象压根就没这个方法,点击运行,python也不能很快报错,只能到运行到那一行的时候才报错,这个报错太迟了,老是这样反复通过运行来测试很影响效率和心情。对于静态语言,很多错误是提前还没运行就在编译时候给你报错了,即使拼写错误也无所谓了,马上改就行。动态语言是当运行到那段代码才报错,这样对于拼写错误造成的代码错误实在是太坑了。

处理一个requests的response对象。

pycahrm使用docstrings来指定变量类型、返回值类型、函数参数类型的更多相关文章
- python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象
今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): y=func() print(y) def foo( ...
- Js基础知识5-函数返回值、函数参数、函数属性、函数方法
函数返回值 所有函数都有返回值,没有return语句时,默认返回内容为undefined,和其他面向对象的编程语言一样,return语句不会阻止finally子句的执行. function testF ...
- Linux c readdir是非线程安全,需用readdir_r,要注意用静态变量当做返回值的函数的非线程安全性
readdir函数: struct dirent *readdir(DIR *dirp); The data returned by readdir() may be overwritten by ...
- Swift2.0语言教程之函数的返回值与函数类型
Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...
- execute sp_executesql 用变量获取返回值
execute sp_executesql 用变量获取返回值 1,EXEC的使用 2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_exe ...
- Java中返回值定义为int类型的 方法return 1返回的是int还是Integer&&finally中return问题
在Java中返回值定义为int类型的 方法return 1:中返回的是Integer值,在返回的时候基本类型值1被封装为Integer类型. 定义一个Test类,在异常处理try中和finally中分 ...
- Java里的参数类型/返回值类型
参数类型/返回值类型: ##数据类型: ###基本类型: ###引用类型: ####数组 ####类 ####接口 参数类型/返回值类型是类和接口的情况: 1.参数类型是普通类的情况 为什么写成静态, ...
- PYTHON-函数的定义与调用,返回值,和参数
函数基础'''1. 什么是函数 具备某一功能的工具->函数 事先准备工具的过程--->函数的定义 遇到应用场景,拿来就用---->函数的调用 函数分类两大类: 1. 内置函数 2. ...
- day03 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
随机推荐
- shell文本处理
1.文件整理employee文件中记录了工号和姓名employee.txt:100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma ...
- python使用pip离线安装库
一.前言及环境 1. 场景及整体思路 最近在做一个大数据项目,开发过程中用自己的机子安装了很多库,开发完之后需要部署到客户那边的环境中,但是客户那边的环境是不能联网的,于是就需要离线进行库的安装. 上 ...
- hbase源码系列(十四)Compact和Split
先上一张图讲一下Compaction和Split的关系,这样会比较直观一些. Compaction把多个MemStore flush出来的StoreFile合并成一个文件,而Split则是把过大的文件 ...
- android开发(32) android 中 actionbar 常用方法。设置标题,隐藏图标等
设置标题: actionBar.setTitle("关于我们"); 使返回箭头出现 actionBar.setDisplayHomeAsUpEnabled(true); 监听返回按 ...
- 一个从MongoDB中导出给定日期范围内数据的shell脚本
#!/bin/sh ver=`date "+%Y%m%d"` #d1, the beginning date, eg:2017-06-28 d1=$1 d1=`date -d $d ...
- ASP.NET中使用jQuery插件实现图片幻灯效果
参照网上的资料及提供的jQuery插件实现图片幻灯效果. 1.页面前台代码: //头部引用 <head runat="server"><title>< ...
- vncserve安装配置 (转)
使用服务器时,利用远程桌面是非常方便的,否则需要跑到服务器机房操作非常的费事,或者需要远程操作机器是也可以使用,一般的操作系统都会带有远程桌面功能,但是不如第三方的的软件好用,对于Linux系统常用的 ...
- qcom wlan kernel 解读 WCNSS_qcom_cfg.ini 文件
CORE/HDD/src/wlan_hdd_main.c 模块初始化: static int __init hdd_module_init ( void) { return hdd_driver_in ...
- GDB调试——常用的命令
首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令 ...
- erlang 二进制中 拼接 变量或者函数 报错
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVsAAACiCAIAAABgR/nfAAAM5ElEQVR4nO2dzZrcKBJF9Zjd/tnOdN