파이썬의 object의 특수메서드

2023. 5. 15. 11:27python

파이썬의 특수 메서드는 언어에서 특별한 의미를 갖는 메서드입니다. 특수 메서드는 일반적으로 연산자와 함수와 상호 작용하는 데 사용됩니다.

다음은 파이썬의 특수 메서드 중 일부입니다.

* __init__() 메서드는 인스턴스가 생성될 때 자동으로 호출됩니다.
* __repr__() 메서드는 인스턴스의 문자열 표현을 반환합니다.
* __str__() 메서드는 인스턴스의 인간이 읽을 수 있는 표현을 반환합니다.
* __add__() 메서드는 인스턴스에 대한 덧셈 연산을 수행합니다.
* __sub__() 메서드는 인스턴스에 대한 뺄셈 연산을 수행합니다.
* __mul__() 메서드는 인스턴스에 대한 곱셈 연산을 수행합니다.
* __div__() 메서드는 인스턴스에 대한 나눗셈 연산을 수행합니다.
* __floordiv__() 메서드는 인스턴스에 대한 내림 나눗셈 연산을 수행합니다.
* __truediv__() 메서드는 인스턴스에 대한 나눗셈 연산을 수행합니다.
* __mod__() 메서드는 인스턴스에 대한 나머지 연산을 수행합니다.
* __pow__() 메서드는 인스턴스에 대한 거듭제곱 연산을 수행합니다.
* __eq__() 메서드는 인스턴스가 다른 인스턴스와 같은지 여부를 확인합니다.
* __ne__() 메서드는 인스턴스가 다른 인스턴스와 다른지 여부를 확인합니다.
* __lt__() 메서드는 인스턴스가 다른 인스턴스보다 작은지 여부를 확인합니다.
* __le__() 메서드는 인스턴스가 다른 인스턴스보다 작거나 같은지 여부를 확인합니다.
* __gt__() 메서드는 인스턴스가 다른 인스턴스보다 큰지 여부를 확인합니다.
* __ge__() 메서드는 인스턴스가 다른 인스턴스보다 크거나 같은지 여부를 확인합니다.
* __and__() 메서드는 인스턴스가 다른 인스턴스와 논리적 AND 연산을 수행합니다.
* __or__() 메서드는 인스턴스가 다른 인스턴스와 논리적 OR 연산을 수행합니다.
* __not__() 메서드는 인스턴스의 논리적 NOT 연산을 수행합니다.
* __len__() 메서드는 인스턴스의 길이를 반환합니다.
* __getitem__() 메서드는 인덱스를 사용하여 인스턴스에서 요소를 가져옵니다.
* __setitem__() 메서드는 인덱스를 사용하여 인스턴스의 요소를 설정합니다.
* __delitem__() 메서드는 인덱스를 사용하여 인스턴스의 요소를 삭제합니다.
* __iter__() 메서드는 인스턴스를 반복할 수 있는 이터레이터를 반환합니다.
* __reversed__() 메서드는 인스턴스를 역순으로 반복할 수 있는 이터레이터를 반환합니다.
* __contains__() 메서드는 값이 인스턴스에 있는지 확인합니다.
* __call__() 메서드는 인스턴스를 함수처럼 호출합니다.

특수 메서드는 파이썬의 강력한 기능이며 다양한 목적으로 사용할 수 있습니다.

 

* __init__() 메서드는 인스턴스가 생성될 때 자동으로 호출됩니다.

예제:

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

my_object = MyClass("John Doe")

print(my_object.name) # John Doe

* __repr__() 메서드는 인스턴스의 문자열 표현을 반환합니다.

예제:

class MyClass:
    def __repr__(self):
        return "MyClass(name=%r)" % self.name

my_object = MyClass("John Doe")

print(my_object) # MyClass(name='John Doe')

 

* `str()` 메서드는 인스턴스의 문자열 표현을 반환합니다.

예제:

>>> str(123)
'123'
>>> str("Hello, world!")
'Hello, world!'

* `len()` 메서드는 인스턴스의 길이를 반환합니다.

예제:

>>> len("Hello, world!")
13
>>> len([1, 2, 3, 4, 5])
5

* `getitem()` 메서드는 인덱스를 사용하여 인스턴스에서 요소를 가져옵니다.

예제:

>>> my_list = [1, 2, 3, 4, 5]
>>> my_list[2]
3
>>> my_dict = {"name": "John Doe", "age": 30}
>>> my_dict["name"]
'John Doe'

* `iter()` 메서드는 인스턴스를 반복할 수 있는 이터레이터를 반환합니다.

예제:

>>> my_list = [1, 2, 3, 4, 5]
>>> for i in iter(my_list):
...     print(i)
...
1
2
3
4
5
>>> my_string = "Hello, world!"
>>> for c in iter(my_string):
...     print(c)
...
H
e
l
l
o
,
w
o
r
l
d
!

* `contains()` 메서드는 값이 인스턴스에 있는지 확인합니다.

예제:

>>> my_list = [1, 2, 3, 4, 5]
>>> 3 in my_list
True
>>> "Hello" in "Hello, world!"
True

* `call()` 메서드는 인스턴스를 함수처럼 호출합니다.

예제:

>>> def my_function(x):
...     return x * 2
...
>>> my_function(3)
6
>>> my_function("Hello")
'HelloHello'

 

* str(): 인스턴스의 문자열 표현을 반환합니다.

예제:

>>> my_list = [1, 2, 3]
>>> str(my_list)
'[1, 2, 3]'

>>> my_string = "Hello, world!"
>>> str(my_string)
'Hello, world!'

* len(): 인스턴스의 길이를 반환합니다.

예제:

>>> my_list = [1, 2, 3]
>>> len(my_list)
3

>>> my_string = "Hello, world!"
>>> len(my_string)
12

* getitem(): 인덱스를 사용하여 인스턴스에서 요소를 가져옵니다.

예제:

>>> my_list = [1, 2, 3]
>>> my_list[0]
1

>>> my_string = "Hello, world!"
>>> my_string[0]
'H'

* iter(): 인스턴스를 반복할 수 있는 이터레이터를 반환합니다.

예제:

>>> my_list = [1, 2, 3]
>>> for i in iter(my_list):
...     print(i)
... 
1
2
3

>>> my_string = "Hello, world!"
>>> for c in iter(my_string):
...     print(c)
... 
H
e
l
l
o
,
 
w
o
r
l
d
!

* contains(): 값이 인스턴스에 있는지 확인합니다.

예제:

>>> my_list = [1, 2, 3]
>>> 2 in my_list
True

>>> my_string = "Hello, world!"
>>> "Hello" in my_string
True

* call(): 인스턴스를 함수처럼 호출합니다.

예제:

>>> def my_function(x):
...     return x * 2
... 
>>> my_function = my_function()
>>> my_function(3)
6

>>> my_string = "Hello, world!"
>>> my_string()
'Hello, world!'