082タイピングモジュール

タイピングモジュール

  • 私たちは、関数のパラメータを定義しますが、裏では、彼らはリターンが算術演算の結果であるならば、プログラムはエラーになりますどのようなタイプの、忘れてパラメータを渡す必要がありますときに我々は彼を呼び出します。
def func(a,b):
    return a+b
res = fun('10',20)
print(res)

int型ではない、をstrされなければならない(プログラムがエラーになり、私たちは、とき、数値の算術がすべき数値パラメータのみが行うことができ、合格します)

1.タイピングモジュール

  • タイピングモジュールは、それは、我々は後方位置パラメータごとにパラメータを定義することができ、私たちはこの問題を解決することができます:私たちはパラメータに渡すと、受信値+タイプ、私たちに迅速、そしてpycharm、typinではありませんタイプが指定され、受信した値が、私たちはヒントを交差させます。

    from typing import List,Dict,Tuple
    
    def func(a:str,b:bool,c:int,lt:list,dct:dict,tp:tuple):
        lis = [a,b,c,lt,dct,tp]
        return lis
    
    res = func('a',True,25,[1,2,3,4],{'b':20},(7,8))
    print(res)

    [ 'A'、真、25、[1、2、3、4]、{ 'B':20}、(7,8)]

  • 我々はパラメータを渡す場合でも、我々は関係なく、私たちは伝統的な価値観にタイピング規定のタイプに従っているかどうかの、我々は最終的にはリストに戻り、時間のパラメータを受け取るためにリストを使用タイピングで指定された型を使用することで、プログラムは、現在の関数は、時間の結果を返します。与えられていないとき

    from typing import List,Dict,Tuple
    
    def func(a:str,b:bool,c:int,lt:list,dct:dict,tp:tuple):
        lis = [a,b,c,lt,dct,tp]
        return lis
    
    # lt = 1
    res = func('a',True,25,1,{'b':20},(7,8))
    print(res)
    # ('a', True, 25, 1, {'b': 20}, (7, 8))程序再当前函数返回结果的时候时不会报错的,只是我们传的参数不规范

    ( 'A'、真、25、1、{ 'B':20}、(7,8))

  • そして、次回現在の関数が値を返す関数呼び出しが、それはエラーが発生します。

    from typing import Generator,Iterable,Iterator
    
    def func(i: int, f: float, b: bool, lt: list, tup: tuple, dic: dict):
        lis = [a,b,c,lt,dct,tp]
        return lis
    a,b,c,lt,dct,tp = func(1,2,3,4,5,6) # 不错误,只是不规范
    
    def func1(lt):
        print(lt[4])# 这个时候程序会报错
    func1(lt)

    「int型のオブジェクトは、添字化ではありません

使用を2.typing

  1. タイピングは、関数のパラメータの種類を制限することができます
from typing import List,Dict,Tuple

def func(a:str,b:bool,c:int,lt:list,dct:dict,tp:tuple):
    lis = [a,b,c,lt,dct,tp]
    return lis

res = func('a',True,25,[1,2,3,4],{'b':20},(7,8))
print(res)

[ 'A'、真、25、[1、2、3、4]、{ 'B':20}、(7,8)]

  1. タイピングは、関数の戻り値を制限することができます
from typing import List,Dict,Tuple

def func(a:str,b:bool,c:int,lt:list,dct:dict,tp:tuple)-> tuple:
    lis = [a,b,c,lt,dct,tp]
    return tuple(lis)

res = func('a',True,25,[1,2,3,4],{'b':20},(7,8))
print(res)

( 'A'、真、25、[1、2、3、4]、{ 'B':20}、(7,8))

図3は、特定の値に戻り値の種類によって制限され得ます

from typing import List, Tuple, Dict


def add(a: int, string: str, f: float,
        b: bool) -> Tuple[List, Tuple, Dict, bool]:
    list1 = list(range(a))
    tup = (string, string, string)
    d = {"a": f}
    bl = b
    return list1, tup, d, bl


print(add(5, "hhhh", 2.3, False))

([0、1、2、3、4]、( 'HHHH'、 'HHHH'、 'HHHH')、{ 'A':2.3}、偽)

  • パラメータを通過する際に:タイプ「パラメータのタイプ」パラメータ宣言形;
  • タイプ結果の宣言の形で「>結果タイプ」 - 結果がで返されます。
  • typeパラメータが正しくない場合pycharmは、通話時に思い出しされますが、プログラムの動作には影響しません。
  • 、 - 「>リスト[STR]」所定のリストを返し、要素が文字列である。そのようなリストのようなリストのために、規定はまたなど、より具体的な数にすることができます。
from typing import List

def func(a: int, string: str) -> List[int or str]:  # 使用or关键字表示多种类型
    list1 = []
    list1.append(a)
    list1.append(string)
    return list1

データ型の主なプロバイダーを3.typing

  1. int型、長い、フロート:整数、長整数、浮動小数点
  2. BOOL、STR:ブール値、文字列型
  3. リスト、タプル、辞書ですが、設定します:リスト、タプル、辞書、コレクション
  4. 発電:発電機の種類
  5. 反復可能な:イテレータ型をすることができ
  6. イテレータ:イテレータ型
from typing import Generator,Iterable,Iterator

def func(i: int, f: float, b: bool, lt: list, tup: tuple, dic: dict,g:Generator) -> tuple:
    lis = [i, f, b, lt, tup, dic]
    return tuple(lis)

def ger():# 生成器
    yield

res = func(1, 2, True, [1, 2], (1, 2), {'a': 1},ger())
print(res)
# (1, 2, True, [1, 2], (1, 2), {'a': 1})

def func1(lt):
    print(lt)
    print(lt[0])
func1(res)

[1,2]

1

おすすめ

転載: www.cnblogs.com/XuChengNotes/p/11402840.html