zoukankan      html  css  js  c++  java
  • python模块:typing

      很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题。typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支持typing检查

    typing模块的作用:

    • 类型检查,防止运行时出现参数和返回值类型不符合。
    • 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
    • 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
    from typing import List, Dict, Tuple
    
    # ->: 后面跟着返回结果及其类型
    def func(a: int, b: str, c: float, d: bool or str) -> Tuple[List, Dict, Tuple, bool or str]:
        lst = list(range(a))
        tup = (b, b, b)
        dic = {'a': c}
        boo = d
        return lst, dic, tup, boo
    
    
    print(func(1, 'hello', 13.14, True))
    # ([0], {'a': 13.14}, ('hello', 'hello', 'hello'), True)

    说明:

    • 在传入参数时通过“参数名:类型”的形式声明参数的类型;

    • 返回结果通过"-> 结果类型"的形式声明结果的类型。

    • 在调用的时候如果参数的类型不正确pycharm会有提醒,但不会影响程序的运行。

    • 对于如list列表等,还可以规定得更加具体一些,如:“-> List[str]”,规定返回的是列表,并且元素是字符串。

    typing常用的类型:

    • int,long,float: 整型,长整形,浮点型;
    • bool,str: 布尔型,字符串类型;
    • List, Tuple, Dict, Set:列表,元组,字典, 集合;
    • Iterable,Iterator:可迭代类型,迭代器类型;
    • Generator:生成器类型;
  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/huangqihui/p/10972329.html
Copyright © 2011-2022 走看看