반응형
- function : defalut value
def my_func(a=20, b=10):
return a-b
print(my_func())
print(my_func(30)) # 인자 a에 30이 들어간다.
print(my_func(40,5))
10
20
35
non-default argument 가 앞에 나올 경우 문제없이 작동한다.
def my_func2(a, b=10): #non-default argument가 먼저 들어가있다.
return a+b
print(my_func2(10,20))
print(my_func2(5,20))
print(my_func2(40))
30
25
50
반대로 default argument가 앞에 나온 경우에는 non-default argument follows default argument의 Error를 볼 수 있다.
def my_func2(a=20, b):
return a+b
print(my_func2(10,20))
print(my_func2(5,20))
print(my_func2(40))
SyntaxError: non-default argument follows default argument
- Parameter vs Argument
- Scoping Rule (변수의 범위)
- 지역변수( local variable) : 함수 내부에서만 사용
- 전역 변수(Global variable) : 프로그램 전체에서 사용, 함수 내부에서도 사용 가능. 하지만 함수 내에 전역 변수와 같은 이름의 변수를 선언하면 새로운 지역변수가 생긴다.
- 함수 내에서 전역변수 사용 시 global 키워드 사용
- 가변 파라미터
*p : tuple type parameter -> 튜플 타입으로 인자를 출력해줌
**p : dict type parameter -> 딕셔너리 타입으로 인자를 출력해줌
def var_param_test(*p): #*p를 arg로 한 function제작
return p
a = var_param_test(1,2,3,4,5)
print(a)
print(type(a))
(1, 2, 3, 4, 5)
<class 'tuple'> #출력값을 tuple형태로 돌려줌
def var_param_test(**p):
for x,v in p.items():
print(f'key: {x} = value: {v}',type(p))
var_param_test(a=1, b=2, c=3, d=4, e=5, f=6)
key: a = value: 1 <class 'dict'>
key: b = value: 2 <class 'dict'>
key: c = value: 3 <class 'dict'>
key: d = value: 4 <class 'dict'>
key: e = value: 5 <class 'dict'>
key: f = value: 6 <class 'dict'>
반응형
댓글