2017-04-10 4 views
1

私はPythonで新しく、実装方法の違いを意味します。例えばPythonのオブジェクトの属性とメソッドの間のリンクは何ですか?

>>> a=np.array([1,2,5,3,43]) 
>>> a.sort() 
>>> a 
array([ 1, 2, 3, 5, 43]) 
>>> a=np.array([1,2,5,3,43]) 
>>> a.shape 
(5,) 
>>> a.sort() 
>>> a 
array([ 1, 2, 3, 5, 43]) 
>>> a.sort 
<built-in method sort of numpy.ndarray object at 0x7f78e358a9e0> 
>>> a.shape() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object is not callable 

たぶん答えはメソッドは、オブジェクトに関連付けられている関数であるPythonの

+0

属性は値です。メソッドは「関数」です。 – DyZ

+0

@DYZ私はそれらの間の**リンク**は何ですか?私は_ _ foo _ _について何か聞いたことがありますが、 "_"についてのことは何ですか? – Statham

+0

リンクはありません。両方が同じオブジェクトに属していることを除けば、それらは無関係です。 – DyZ

答えて

1

で「_ _ _ foo_」の特別使用のようなものでなければなりません。 a.sortをタイプすると、関数が格納されているメモリ内のアドレスが返され、かっこを使用すると関数が呼び出されます。属性はオブジェクト内の単なる変数なので、a.shape()を呼び出すと、変数を関数として呼び出そうとしているのでエラーが返されます。

これはあなたが探していたものかどうかわかりませんが、助けてくれることを願っています。

関連する問題