[파이썬] 클래스, 함수, 객체 이해

클래스, 함수, 객체 이해

def

함수 정의 시 def 함수를 사용한다.

def test_func(a,b):
    print(a,b)
    
test_func(1,2)

또 하나 가변 갯수의 인자 *args , **kwargs 를 사용할 수 있다. 두 개의 의미는

*args 은 키워드 되지 않은 가변 갯수의 인자를 내보낼 때 사용

**kwargs 은 키워드된 가변 갯수의 인자를 내보낼 때 사용, 즉 이름이 지정된 인자들을 처리할 때 사용된다

def test_func_tpl(*args):
	print(args)
    
test_func(1,2,3,4)  ## 1,2,3,4,5,5,6 길이가 바뀌어도 상관없음

==> (1,2,3,4)
def test_var_args(f_arg, *arg):
    print('첫 번쨰 인자:', f_arg)
    for arg in argv:
        print('*arg의 다른 인자: ', arg)
        
test_var_args('ㅎㅇ','python', 'class 어렵네', '재미는 있네')

def test_func_dic(**kwargs):   ## **kwds 와 같은 의미
    print(kwargs)
    
test_func_dic(a=1,b=2,c=3)

==> {a=1,b=2,c=3}

def test_kward_func(**kwargs):
    if kwargs is not None:
        for key, value in kwargs.items():
            print('{key} == {value}'.format(key,value))
            
test_kward_func(name='안성윤')

==> name == 안성윤
            

class 를 기반으로 코딩하다보면 변수를 일일히 받아야 하는 경우도 있지만 있어도 되고 없어도되는 그런 변수를 받아야 하는 경우

받는 입력값의 범위가 랜덤적일 경우 등 여러방면에 사용되는 것 같다.