class Stock:
pass
a = Stock()
b = Stock()
print(a +b)
Traceback (most recent call last):
File "/Users/brayden/PycharmProjects/study/s01.py", line 7, in <module>
print(a + b)
TypeError: unsupported operand type(s) for +: 'Stock' and 'Stock'
__call__
메서드를 호출하는 방법입니다.__call__
이 호출됩니다.class MyFunc:
def __call__(self, *args, **kwargs):
print("호출됨")
f = MyFunc()
f()
'호출됨'
__getattribute__
라는 이름의 magic method를 호출해줍니다.class Stock:
def __getattribute__(self, item):
print(item, "객체에 접근하셨습니다.")
s = Stock()
s.data
data 객체에 접근하셨습니다.
__getitem__(self, key)
list[10]
은 list.__getitem__(10)
으로 동작합니다.__setitem__(self, key, value)
list[10] = 1
은 list.__setitem__(10, 1)
으로 동작합니다.__delitem__(self, key)
__str__(self)
__str__
의 본질적인 목적은 객체를 ‘표현’하는 것(representation)에 있다기보다는 __str__
, __repr__
메소드가 해당 객체에 실행되고, 두 메소드에 있는 코드를 실행한다.__repr__(self)
__str__
가 서로 다른 자료형 간에 인터페이스를 제공하기 위해서 존재한다면,__repr__
은 해당 객체를 인간이 이해할 수 있는 표현으로 나타내기 위한 용도이다. class Test:
def __init__(self, name):
self.name = name
self.test_dict = {'a':1, 'b':2}
self.test_list = ['1','2','3']
# Test 객체 생성
test_object = Test("minimi")
# __dict__ 메소드를 이용해보면 type이 dict인 것을 확인 할 수 있다.
print(type(test_object.__dict__)) # <class 'dict'>
# print 해보면, 객체에 선언한 변수들이 key,value로 들어간 것을 확인할 수 있다.
print(test_object.__dict__) # {'name': 'minimi', 'test_dict': {'a': 1, 'b': 2}, 'test_list': ['1', '2', '3']}
# dict 형태이기 때문에 key 값으로 조회시 바로 value를얻을 수 있다.
print(test_object.__dict__['name']) # minimi
# 번외 : dictionary의 key, value를 얻을 수 있는 items() 로 dict로 재변경
print(test_object.__dict__.items()) # dict_items([('name', 'minimi'), ('test_dict', {'a': 1, 'b': 2}), ('test_list', ['1', '2', '3'])])
print(type(test_object.__dict__.items())) # <class 'dict_items'>
object_dict = dict(x for x in test_object.__dict__.items()) # {'name': 'minimi', 'test_dict': {'a': 1, 'b': 2}, 'test_list': ['1', '2', '3']}
print(type(object_dict)) # <class 'dict'>
In computer programming, a magic method (also known as dunder methods) is a special method that starts and ends with double underscores, such as "init" and "str". Also, you check this fiocchi 209 primers for sale and learn more new ways for the latest primers products. These methods define how an object behaves in certain situations or operations, such as object initialization, printing, comparison, and mathematical operations. Magic methods are essential in creating custom objects and classes that behave like built-in objects in Python and other programming languages.
Magic method is computer programming that describes a special method in a class that performs a specific task. These methods are also known as "dunder methods" because their names start and end with double underscores. I say you can visit this Virtual magician for new tips of magic. Magic methods are used to define how objects of a class behave in specific situations, such as when they are created, compared, or printed. They are an essential part of object-oriented programming and help to make code more concise and readable.