Python_내장 함수

심야·2023년 7월 14일
0

파이썬

목록 보기
7/7
post-thumbnail

__str__

__str__ method 는 "문자열화 함수"이다.

class Car():  # class 생성
    
    wheels = 4
    doors = 4
    Windows = 4
    seats = 4
 
k3 = Car() 
print(k3) # <__main__.Car object at 0x0000025FAC5E6BE0>

k3 instance를 출력하면 <__main__.Car object at 0x0000025FAC5E6BE0> 문자열이 출력된다. 즉 instance"정체성"을 표현한다고 불 수 있다. 그런데 __str__() method를 사용하면 instance정체성"변경"할 수 있다.

class Car():  # class 생성
	
    wheels = 4
    doors = 4
    Windows = 4
    seats = 4
    
    def __str__(self):
    	return f'Car with seats : {self.seats}'  # k3.seats

      
k3 = Car() 

print(k3) # Car with seats : 4

__str__를 수정 후 출력하니 Car with seats : 4가 출력된다.


class Car():  # class 생성
	
    wheels = 4
    doors = 4
    Windows = 4
    seats = 4
	
    def __str__(self):
    	return f'Car with seats : {self.seats}'
      
    def instance(self):
        print(self)
        

       
k3 = Car()

k3.instance() # Car with seats : 4
			  

instance metohd를 호출하면 Car with seats : 4가 출력된다.
instance 자신을 출력했더니 Car with seats : 4 가 출력되므로 __str__ method"instance" 정체성을 문자열로 표현해줌을 알 수 있다.

__init__

class Car():  # class 생성
    
    wheels = 4
    doors = 4
    Windows = 4
    seats = 4
    
    def __init__(self, **kwargs):
        print('__init__실행')
        
k3 = Car()

따로 출력하지 않고 instance를 만들기만 했는데 "__init__실행" 문자열이 출력된다. __init__"초기화 함수""class를 만드는 함수"이다. 그래서 instance를 만들기만 했는데도 문자열이 출력되는 것이다.

class Car():  # class 생성
	
    wheels = 4
    doors = 4
    Windows = 4
    seats = 4
    
    def __init__(self, **kwargs):
        print(kwargs)
        
k3 = Car(color='red', price='$30')

코드를 실행하니 kwargsdictionary구조여서 {'color': 'red', 'price': '$30'}가 출력된다.
__init__"class를 만드는 함수" 이기 때문에 Car()의 속성들을 아래와 같이 변경 가능하다.

class Car():

    def __init__(self, **kwargs):
        self.wheels = 4
        self.doors = 4
        self.Windows = 4
        self.seats = 4

kwargs.get()keyvalue를 가진다.
그래서 color, pricedefault값을 black, $20으로 정의할 수 있다.
만약 color 속성 값을 입력하지 않으면 default값이 출력될 것이고 값을 입력하면 "입력 값" 이 출력될 것이다.

class Car():  

    def __init__(self, **kwargs):
        self.wheels = 4
        self.doors = 4
        self.Windows = 4
        self.seats = 4
        self.color = kwargs.get('color', 'black')
        self.price = kwargs.get('price', '$20')
                
k3 = Car()
print(k3.color) # black
avante = Car(color='red', price='$40')
print(avante.color) # red

본 글은 노마드 코더의 Python으로 웹 스크래퍼 만들기 수업을 정리합니다.

profile
하루하루 성실하게, 인생 전체는 되는대로.

0개의 댓글