math.py
関数が実装されましたが、PyCharmでファイルを開くと、すべての関数が空であり、単純なpass
があることがわかりました。例えば:
def ceil(x): # real signature unknown; restored from __doc__
"""
ceil(x)
Return the ceiling of x as a float.
This is the smallest integral value >= x.
"""
pass
使用されている関数が実際にはC標準ライブラリからのものだからだと思います。それはどのように機能しますか?
PyCharmはあなたに嘘をついています。あなたが見ているソースコードは、PyCharmが作成した偽物です。 PyCharmはそこにあるべき関数を知っており、関数のdocstringsを使用してシグネチャを推測できますが、関数の本体がどのように見えるかはわかりません。
実際のソースコードを確認したい場合は、公式Githubリポジトリの Modules/mathmodule.c
で確認できます。そこの関数の多くは、math.h
からのC関数の周りにマクロ生成された薄いラッパーですが、一貫性のない、または不十分な標準ライブラリ実装、math.h
相当、および__ceil__
のようなカスタマイズフック。