0
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におけるオブジェクトとは?

Posted at

オブジェクトとは?

オブジェクトとは、データ(値)とそれを操作するためのメソッド(関数)を持つプログラム上の「もの」 です。

Python では、すべてのデータがオブジェクト です。

  • 文字列 (str)
  • 数値 (int, float)
  • リスト (list)
  • 辞書 (dict)
  • クラス (class で作成したインスタンス)
  • モジュール (import したもの)

これらはすべてオブジェクトです。


オブジェクトの基本的な考え方

オブジェクトには 「属性」「メソッド」 があります。

1. 属性(データ)

オブジェクトが持つ 情報(変数) のこと。

class Person:
    def __init__(self, name, age):
        self.name = name  # ← これが属性
        self.age = age    # ← これも属性

person = Person("Alice", 25)
print(person.name)  # "Alice"
print(person.age)   # 25

person.nameperson.ageオブジェクトの属性(データ) です。


2. メソッド(関数)

オブジェクトが持つ 機能(関数) のこと。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):  # ← これがメソッド
        print(f"Hello, my name is {self.name} and I'm {self.age} years old.")

person = Person("Alice", 25)
person.greet()  
# Hello, my name is Alice and I'm 25 years old.

greet()オブジェクトのメソッド(機能) です。


オブジェクトの特徴

1. オブジェクトは「クラス」から作られる

オブジェクトは クラス(設計図) から作られた実体(インスタンス)です。

class Car:
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

car1 = Car("Toyota", "Red")  # car1 は Car のオブジェクト(インスタンス)
car2 = Car("Honda", "Blue")  # car2 も Car のオブジェクト(インスタンス)

print(car1.brand)  # Toyota
print(car2.color)  # Blue
  • Car クラスが オブジェクトの設計図 で、car1car2オブジェクト(インスタンス)

2. オブジェクトは「状態」と「振る舞い」を持つ

オブジェクトは 状態(データ)振る舞い(メソッド) を持つ。

class Dog:
    def __init__(self, name):
        self.name = name
        self.energy = 100  # ← 状態(データ)

    def bark(self):  # ← 振る舞い(メソッド)
        print(f"{self.name} is barking! Woof Woof!")
        self.energy -= 10  # 吠えるとエネルギーが減る

dog = Dog("Buddy")
dog.bark()
print(dog.energy)  # 90
  • dog.nameオブジェクトの「状態」
  • dog.bark()オブジェクトの「振る舞い」

3. Pythonのすべてのデータはオブジェクト

Python では、数値や文字列、リストなどもオブジェクト です。

x = 10
print(x.real)  # 10(整数もオブジェクト!)

s = "Hello"
print(s.upper())  # "HELLO"(文字列オブジェクトのメソッド)

x.reals.upper() は、オブジェクトの属性やメソッド を使っている例です。


オブジェクトを操作する関数

Python にはオブジェクトを操作するための便利な関数があります。

関数 説明
type(obj) オブジェクトの型を取得
isinstance(obj, class) オブジェクトが特定のクラスかチェック
dir(obj) オブジェクトの属性やメソッドを一覧表示
hasattr(obj, "attr") 指定した属性があるかチェック
getattr(obj, "attr", default) 指定した属性の値を取得
setattr(obj, "attr", value) 指定した属性の値を設定

1. type()

print(type(10))  # <class 'int'>
print(type("Hello"))  # <class 'str'>
print(type([]))  # <class 'list'>

オブジェクトの型を確認できる!


2. isinstance()

x = 10
print(isinstance(x, int))  # True
print(isinstance(x, str))  # False

オブジェクトが特定の型かどうか判定できる!


3. dir()

print(dir("Hello"))

"Hello" のメソッド一覧が表示される。(upper(), lower(), strip() など)


4. hasattr()

class Sample:
    def __init__(self):
        self.name = "Alice"

obj = Sample()
print(hasattr(obj, "name"))  # True
print(hasattr(obj, "age"))  # False

name はあるけど、age はない!


まとめ

用語 説明
オブジェクト データとメソッドを持つ「もの」。Pythonではすべてオブジェクト
クラス オブジェクトの設計図
インスタンス クラスから作られた実体
属性(データ) オブジェクトが持つ情報
メソッド(関数) オブジェクトが持つ機能

Python ではすべてがオブジェクト!

  • int, str, list なども オブジェクト
  • hasattr()getattr() でオブジェクトの属性を操作できる
  • dir() でオブジェクトのメソッドを確認できる
0
0
0

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
0
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?