Pythonにおけるselfとは何か?

By datnq, at: 2022年12月19日18:57

Estimated Reading Time: __READING_TIME__ minutes

What is self in Python?
What is self in Python?

Pythonにおいて、selfはクラス定義で使用される特別なキーワードであり、クラスのインスタンスを表します。オブジェクト指向プログラミングにおいて、クラスの属性とメソッドにアクセスすることを可能にします。

 

私たちの中には、いくつかのコア機能を知らずに毎日これを使っている人もいます

 

なぜselfを使うのか?

 

selfパラメータは、クラスの現在のインスタンスへの参照として機能します。これにより、クラス内のメソッドはオブジェクトの属性にアクセスして変更し、他のメソッドを呼び出すことができます。

 

selfの主な特性:

 

  • クラスの現在のインスタンスを参照します。
     

  • インスタンスメソッドの最初の引数でなければなりません。
     

  • selfが慣習ですが、異なる名前にすることもできます。

 

selfの動作

 

簡単な例を以下に示します。

 

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 am {self.age} years old.")

# Personのインスタンスを作成
person = Person("Alice", 30)
person.greet()  # 出力:Hello, my name is Alice and I am 30 years old.

 

説明:

 

  • __init__はコンストラクタと呼ばれる特別なメソッドです。
     

  • self.nameself.ageはインスタンスの属性を参照します。
     

  • greet()メソッドは、これらの属性にアクセスして表示するためにselfを使用します。

 

selfに関するよくある間違い

 

1. メソッド定義でselfを省略する:

 

def greet():  # selfが欠けている
    print("Hello!")

 

修正:

 

def greet(self):
    print("Hello!")

 

2. selfとクラス変数を混同する:

 

class Counter:
    count = 0  # クラス変数

    def __init__(self):
        self.count += 1  # 正しくない使用方法

 

修正:クラス変数を変更するにはCounter.countを使用します。

 

高度な使用方法

 

クラス属性へのアクセス

 

class Example:
    class_variable = 42

    def show_class_variable(self):
        print(f"Class variable: {Example.class_variable}")

 

メソッドチェーン

 

class Addition:
    def __init__(self):
        self.data = []

    def add(self, value):
        self.data.append(value)
        return self  # メソッドチェーンを可能にする

    def display(self):
        print(self.data)

b = Addition()
b.add(1).add(2).add(3).display()  # 出力:[1, 2, 3]

 

結論

 

selfキーワードは、Pythonのオブジェクト指向プログラミングにおいて不可欠です。クラスのインスタンスを表し、インスタンスのデータとメソッドへのアクセスを提供します。selfの使用方法を理解することで、Pythonプロジェクトで堅牢で再利用可能なコードを作成できます。

Tag list:
- self in Python
- how to use self in Python
- Python method self usage
- self keyword explanation Python
- common Python self mistakes
- object-oriented programming Python self
- Python self keyword
- self parameter in Python
- Python class attributes self
- Python class self example

Related

Django Python

Read more
Experience Django

Read more
Python Django

1日1回服用 事前承認

Read more

Subscribe

Subscribe to our newsletter and never miss out lastest news.