2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】ドット(.)の使い方を整理してみた

Last updated at Posted at 2025-05-22

Pythonでクラスやオブジェクトを扱っていると、よく obj.nameobj.method() のように「ドット(.)」を使うコードに出会います。
なんとなく見よう見まねで使っていたのですが、「そもそもこのドットは何をしているんだろう?」と気になったので、学習の記録として整理してみました。

ドット(.)の基本的な役割

Pythonにおけるドット(.)は、オブジェクトの中にあるもの(属性やメソッド)にアクセスする記号です。

obj.名前

このように書くと、「objの中にある名前(変数・関数など)」を取り出すことになります。

属性へのアクセス(変数)

obj.変数名

これは、オブジェクトが持っているデータ(属性)にアクセスしているということになります。

例:インスタンス変数のアクセス

class User:
    def __init__(self, name):
        self.name = name

u = User("Gaku")
print(u.name)  # Gaku

u.name という書き方で、u の持つ name 属性にアクセスしています。

メソッドの呼び出し(関数)

obj.関数名()

これは、オブジェクトが持っている処理(関数)を呼び出すという意味になります。

例:メソッドの呼び出し

class User:
    def greet(self):
        print("こんにちは!")

u = User()
u.greet()  # こんにちは!

ドットのあとに () がついているので、これは関数の呼び出しであることがわかります。

補足:() をつけずに関数を渡す(コールバックとしての利用)

関数やメソッドは () をつけないことで「呼び出す」のではなく、「関数オブジェクトを取り出す」ことができます。

例えば、他の関数に引数として渡し、あとで呼び出すという使い方が可能です。
これを「コールバック」と呼びます。

例:メソッドをコールバックとして渡す

class User:
    def greet(self):
        print("こんにちは!")

def func(callback):
    callback()  # ここで実行される

u = User()
func(u.greet)  # () はつけない → 関数オブジェクトを渡している

このように、u.greet() をつけずに func に渡すことで、
関数内で後から callback() として呼び出すことができます。

() をつけてしまうと、その場で実行されてしまい、「関数を渡す」ことができなくなる点に注意です。

プロパティのアクセス(処理付きの値)

obj.プロパティ名

見た目は変数と同じですが、裏では処理(関数)が実行されている場合があります。
これは @property を使ったときの挙動です。

例:@property を使った属性のような関数

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def area(self):
        return 3.14 * (self._radius ** 2)

c = Circle(5)
print(c.area)  # 78.5

c.area は関数で計算していますが、呼び出すときは () をつけません。
値っぽく見せたいときにプロパティが使われると理解しました。

ドットでアクセスできるものまとめ

書き方 意味
obj.変数 属性(データ)にアクセス u.name, c.radius
obj.関数() メソッド(処理)を呼び出す u.greet(), d.bark()
obj.プロパティ 値っぽく見えるけど実は関数 c.area, p.age

変数と関数の見分け方

初心者の自分としては、ドットのあとが変数なのか関数なのかでよく迷いました。
自分なりに整理した見分け方は以下の通りです。

  • () がない → 変数 or プロパティ
  • () がある → 関数(メソッド)
  • 実際にプロパティかどうかは定義を見ないとわからない

例:

print(user.name)     # → 変数またはプロパティ
print(user.get_age()) # → 関数(メソッド)

まとめ

  • ドットは「オブジェクトの中身(属性や関数)にアクセスするための記号」
  • obj.変数 → データ(属性)にアクセス
  • obj.関数() → 関数(処理)を実行
    () をつけないことで、関数を「後から呼ぶために渡す(コールバック)」こともできる)
  • obj.プロパティ → 値のように見えるけど処理してることもある(@property

さいごに

Pythonのクラスを学ぶ中で、obj.〇〇 のような表現が頻出するので、
ドットの意味をしっかり整理しておくことはすごく大事だと感じました。
本記事が私と同じようにドットの意味をより理解したい方の役に立てれば幸いです。

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?