質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1119閲覧

メソッドを使う場合に ()をつける場合とつけない場合の違いがわかりません

yamahisa

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/10 12:41

前提・実現したいこと

メソッドを使う場合に、()をどういうときに着ける必要があるかの理解をしたいです

該当のソースコード

以下のコードで、
shapeやcolumnsは()無しでもDataFrameの要素やcolumnを返してくれるのに対し、
sumは()をつけないと合計値を返してくれません。ただ、()をつけなくともエラーにはなっていません。
メソッドの後ろに()をつけるつけないの基準がわからなくなってきたため教えて頂けるとありがたいです。

in

1import numpy as np 2import pandas as pd 3 4x = np.arange(15).reshape(-1, 3) 5x = pd.DataFrame(a, columns = ["a", "b", "c"]) 6 7print(x.shape) 8print('-'*40) 9print(x.columns) 10print('-'*40) 11print(x.sum()) 12print('-'*40) 13print(x.sum)

out

1(5, 3) 2---------------------------------------- 3Index(['a', 'b', 'c'], dtype='object') 4---------------------------------------- 5a 30 6b 35 7c 40 8dtype: int64 9---------------------------------------- 10<bound method DataFrame.sum of a b c 110 0 1 2 121 3 4 5 132 6 7 8 143 9 10 11 154 12 13 14>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

shapeやcolumnsはメソッドではなくプロパティです。
sumはメソッドです。

オブジェクトにくっついてる変数的なのがフィールド、関数的なのがメソッド、フィールドみたいに参照or代入するけど実はメソッドなのがプロパティです。

オブジェクトがフォルダだとすると、中に入ってるデータファイルがフィールドで、実行ファイルがメソッド、データファイルの振りしてるけど書き込み・読み込みで実行ファイルが動くのがプロパティです。

sumがプロパティではなくメソッドである理由は、多分代入するものではないからとか、中身の大きさで計算に時間がかかるから関数であることを明示したいとかじゃないでしょうか。

投稿2020/07/10 12:56

kairi003

総合スコア1330

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamahisa

2020/07/11 12:06

shape/columnsはメソッドではなかったのですね。。 メソッドには()をつけるという理解ができました。 ありがとうございました。
guest

0

メソッドの後ろに()をつけると、メソッドを呼び出します。
つけないと、それはメソッド自体を意味します。

・メソッドを呼び出してその返り値を使う場合
・メソッド自体を、別のメソッドに渡したりする場合
で使い分けます。

投稿2020/07/10 12:45

otn

総合スコア84507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/07/10 13:06

> メソッドを使う場合に、()をどういうときに着ける必要があるかの理解をしたいです という質問に回答したのですが、なるほど、そういう質問では無かったようですね。
yamahisa

2020/07/11 12:05

メソッド呼び出しに()をつけるという理解ができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問