python部分ソースコードでのメソッドはpassプレースホルダのみで説明します

1072 ワード

まず、
pythonは関数を定義します.関数体が必要です.そうしないと、コンパイルが間違っています.関数体をpassで占有するのは、エラーを防止し、何の動作もしません.このpassのみの関数には、一般的に以下のいくつかの可能性があります.
1、親クラスで関数を宣言しますが、実装を宣言しないで、継承した子クラスによって実装されます.つまり、これは空の方法です.
 
2、この関数の具体的な実装はpythonではなく、例えばCのような効率的な文法で記述され、パッケージの中で空の方法でビットを占め、呼び出すときはC言語で実装される方法を呼び出す.君の言うことは二つ目の状況かもしれない.pythonには、大量の演算が必要な内蔵関数がCまたはC++で書かれています.
例えばここでは
def next(iterator, default=None): # real signature unknown; restored from __doc__
    """
    next(iterator[, default])
    
    Return the next item from the iterator. If default is given and the iterator
    is exhausted, it is returned instead of raising StopIteration.
    """
    pass

下層はc言語で実現されています.ここで定義された関数は、help(str)のときに表示されるため、言い訳と使用説明に似ているだけです(cソースを見たい場合は、どのように使うかを教えてくれます).目的は、各関数が何をしているのか、注釈反射によってドキュメントを実現する方法です.たとえば、以下で定義する関数
def func(a: int, b: str):
    return b * a

intとstrは何の役割もありませんが、inspect.getfullargspec(func).annotationsを使用すると、各変数の定義と同じように定義されます.もちろん、定義はクラスだけでなく、関数、定数などでもあります.