python3.5以上のバージョンでtypingモジュールはコードの堅牢性を向上

3013 ワード

はじめに
Pythonは弱いタイプの言語で、多くの場合、関数パラメータのタイプや戻り値のタイプが分からない可能性があります.いくつかのタイプには指定方法がない可能性があります.コードを書き終わった後、コードを振り返ってみると、自分が書いた関数がどのようなパラメータを伝える必要があるのか、どのようなタイプの結果を返す必要があるのかを忘れてしまう可能性があります.コードの具体的な内容を読んで、読むスピードを下げなければなりません.typingモジュールはこの問題をよく解決することができる.
二typingモジュールの役割
  • タイプチェックで、実行時にパラメータと戻り値タイプが一致しないようにします.
     
  • は、開発ドキュメントの追加説明として、ユーザが呼び出したときにパラメータタイプを入力および返すのを容易にする.
     
  • このモジュールが追加された後、プログラムの実行に影響を与えることはなく、正式なエラーは報告されず、注意するしかありません.
  •   :typing     python3.5           ,pycharm    typing  
    

    三typingモジュールの一般的な方法
    from typing import List, Tuple, Dict
    
    def test(a: int, string: str, f: float, b: bool) -> Tuple[List, Tuple, Dict, bool]:
        ll=[1,2,3,4]
        tup = (string, a, string)
        dic = {"xxx": f}
        boo = b
        return ll, tup, dic, boo
    
    print(test(12, "lqz", 2.3, False))

    注意:
  • パラメータの入力時に「パラメータ名:タイプ」という形式でパラメータのタイプを宣言する.
  • は、結果のタイプを「->結果タイプ」として宣言した結果を返します.
  • 呼び出し時にパラメータのタイプが正しくないpycharmは注意されますが、プログラムの実行には影響しません.
  • listリストなどについては、「->List[str]」など、リストを返し、要素が文字列であることを規定するより具体的に規定することもできる.

  • 三typingでよく使われるタイプ
  • int,long,float:整型、長整形、浮動小数点型;
  • bool,str:ブール型、文字列タイプ;
  • List,Tuple,Dict,Set:リスト,メタグループ,辞書,集合;
  • Iterable,Iterator:反復可能タイプ、反復器タイプ;
  • Generator:ジェネレータタイプ;

  • 4 pythonは生まれながらにしてマルチステートをサポートし、反復器の要素は複数ある可能性があります.
    from typing import List, Union
    
    def func(a: int, string: str) -> List[int or str]:
        list1 = []
        list1.append(a)
        list1.append(string)
        return list1
    
    def get_next_id() -> Union[int, None]:
        return 1
        return None
    #   or         ,    Union

     
    転載先:https://www.cnblogs.com/liuqingzheng/p/11012099.html