善用docstring和annotations配合pycharm自动提示让python函数使用更便捷

在使用别人定义的函数的时候,大多数时候我们不关心函数具体实现,而只想知道每个参数以及返回值的类型和说明。令人欣喜的就是pycharm已经集成了参数类型提示和说明的快捷键功能,不过这需要被调用的函数在定义的时候按照一定的格式去标注docstring和annotations。下面我们就一起来了解下这些都是啥,让我们以后自己定义的函数也能使用起来更便捷。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

什么是docstring?

docstring是一个没有赋值给任何变量的string,其被用于类(class),模块(module),函数(function)或者方法(method)的定义中。一个对象的docstring出现在该对象定义的最前面,内容是对该对象的功能或者参数等的描述信息,通常用三引号表示。docstring的获取可以通过对象的__doc__属性。

下面是单行的docstring演示

def square(a):
    '''Returned argument a is squared.'''
    return a**a
print (square.__doc__)
Returned argument a is squared.

下面是多行的docstring演示

def some_function(argument1):
    """Summary or Description of the Function

    Parameters:
    argument1 (int): Description of arg1

    Returns:
    int:Returning value

   """

    return argument1

虽然说在docstring里面写什么内容都无所谓,不过为了便于pycharm的自动提示,后面我们会按照PEP规定的格式去写。

顺便一提的是python中的注释用#来表示,其也可以起到解释说明的作用,但是就没有pycharm的自动提示了。

什么是annotations?

annotations用在函数的定义中,和docstring一样也是对函数的描述信息,不影响函数功能的实现。但是annotation着重于描述函数的参数和返回值的类型或者描述。

其格式类似下面这样

def func
### 启用 PyCharm 中的函数自动提示功能 为了在 PyCharm 中实现函数自动提示功能,可以按照以下方式完成设置: #### 配置文档字符串格式 通过调整 `docstring` 的格式来增强代码编辑器的功能支持。进入菜单栏中的 **File -> Settings**,随后导航到 **Python Integrated Tools** 节点下的 **Docstring Format** 字段,将其设定为 `reStructuredText`[^1]。 此操作有助于 PyCharm 好地解析并展示函数签名以及参数说明等内容。 #### TensorFlow 自动补全功能配置 对于特定库(如 Tensorflow),确保其能够正常提供自动补全服务,则需进一步确认项目解释器已正确定义。具体步骤如下: 打开 **File -> Settings** 对话框;切换至左侧列表里的 **Project: [Your Project Name]** 下拉项;点击其中的 **Project Interpreter** 子选项卡;从右侧可用环境列表里挑选由 Anaconda 提供的那个 Python 解析版本作为当前项目的默认运行时环境[^2]。这样做的好处在于它会连带加载所有预先安装于该虚拟环境中所关联的各种第三方扩展包及其内部定义的方法们,从而极大提升 IDE 内部索引效率进而促进智能化建议机制发挥作用。 另外值得注意的是如果发现某些模块仍然缺失对应的支持信息的话还可以借助终端执行命令 `conda list` 来验证实际装载状态以便及时补充缺少部分。 ```python # 示例代码片段用于测试自动补全效果 import tensorflow as tf def example_function(input_tensor: tf.Tensor) -> None: output = tf.keras.layers.Dense(64, activation='relu')(input_tensor) print(output) example_function(tf.random.uniform([10, 5])) ``` 上述脚本展示了如何利用 TensorFlow 构建简单的神经网络层并通过调用自定义函数触发相关联的对象属性检索过程以此检验先前所做的各项准备工作是否生效。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值