2017-02-11 6 views
3

のコードをPython関数に渡していますが、関数のクラスを参照して、ちょうどpassというフレーズを使用しています。 pythonからこのネイティブ組み込み関数のような :多くのコードでは

def copyright(*args, **kwargs): # real signature unknown 
""" 
interactive prompt objects for printing the license text, a list of 
    contributors and the copyright notice. 
""" 
pass 

私は、パスが何もしません知っている、と無関心とnullフレーズのそのようなものが、なぜプログラマは、このような機能を使うのか?

ともいくつかの機能は次のようにreturn ""であります。プログラマは、このようなものを使用する理由

def bin(number): # real signature unknown; restored from __doc__ 
""" 
bin(number) -> string 

Return the binary representation of an integer. 

    >>> bin(2796202) 
    '0b1010101010101010101010' 
""" 
return "" 

答えて

3

その未定義のもの あなたはこの機能が必要なことを知っていますが、何を返せばよいのか分かりますが、彼らはあなたがそれらを継承し、あなたのIDEがあなたに嘘をついている彼らに

+3

もっともらしいの推測が、本当の理由はまったく異なっています。これらは組み込みの 'bin'関数や' copyright'オブジェクトのような組み込みのオブジェクトで、対話モードで 'copyright'と入力して著作権メッセージを得ることができることに注意してください。彼らはすでに実装されています。 – user2357112

5

を上書きすることを期待しているため、プロトタイプ」時々

パッケージは、これらの機能が付属します。これらの関数は実際にはそのようには見えません。あなたのIDEは実際のものとほとんど似ていない偽のソースコードを作りました。だから、それは# real signature unknownのようなものです。なぜ彼らはこれが良い考えだと思ったのか分かりません。

実際のコードは全く異なって見えます。これは、Cで書かれて、それがCの関数PyNumber_ToBase周りの単純なラッパーとして実装されています

static PyObject * 
builtin_bin(PyObject *self, PyObject *v) 
{ 
    return PyNumber_ToBase(v, 2); 
} 

PyDoc_STRVAR(bin_doc, 
"bin(number) -> string\n\ 
\n\ 
Return the binary representation of an integer or long integer."); 

:たとえば、ここで本当のbin(Pythonの2.7バージョン)です

PyObject * 
PyNumber_ToBase(PyObject *n, int base) 
{ 
    PyObject *res = NULL; 
    PyObject *index = PyNumber_Index(n); 

    if (!index) 
     return NULL; 
    if (PyLong_Check(index)) 
     res = _PyLong_Format(index, base, 0, 1); 
    else if (PyInt_Check(index)) 
     res = _PyInt_Format((PyIntObject*)index, base, 1); 
    else 
     /* It should not be possible to get here, as 
      PyNumber_Index already has a check for the same 
      condition */ 
     PyErr_SetString(PyExc_ValueError, "PyNumber_ToBase: index not " 
         "int or long"); 
    Py_DECREF(index); 
    return res; 
} 
+0

私はJetBrainsがそういったことをしているので、ライブラリモジュールと最終的に文書化されたデッドエンドを参照することができます。その定義に名前を付けることはできません。 –

+0

これは奇妙です、バグレポートの価値があるようです –

関連する問題