문법
def function_name(parameter):
code
if you don’t explicitly use a return value in a
return
statement, or if you totally omit thereturn
statement, then Python will implicitly return a default value for you. That default return value will always beNone
.
def func_mul(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return y1, y2, y3
x, y, z = func_mul(10)
def func_mul1(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return (y1, y2, y3)
q = func_mul1(20)
def func_mul2(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return [y1, y2, y3]
p = func_mul2(30)
def func_mul3(x):
y1 = x * 10
y2 = x * 20
y3 = x * 30
return {'v1': y1, 'v2': y2, 'v3': y3}
d = func_mul3(30)
def args_func(*args): # 매개변수 명 자유
for i, v in enumerate(args):
print('Result : {}'.format(i), v)
print('-----')
args_func('Lee')
args_func('Lee', 'Park')
args_func('Lee', 'Park', 'Kim')
def kwargs_func(**kwargs): # 매개변수 명 자유
for v in kwargs.keys():
print("{}".format(v), kwargs[v])
print('-----')
kwargs_func(name1='Lee')
kwargs_func(name1='Lee', name2='Park')
kwargs_func(name1='Lee', name2='Park', name3='Cho')
def example(args_1, args_2, *args, **kwargs):
print(args_1, args_2, args, kwargs)
example(10, 20, 'Lee', 'Kim', 'Park', 'Cho', age1=20, age2=30, age3=40)
def nested_func(num):
def func_in_func(num):
print(num)
print("In func")
func_in_func(num + 100)
nested_func(100)
# func_in_func(1000) 불가
중첩된 내부의 함수를 외부에서 호출할 수는 없다.
def mul_func(x, y):
return x * y
lambda x, y:x*y # 익명이기 때문에 변수에 담아서 쓰거나, 인자로 넘긴다.
[PEP 484] 타입 힌트는 python 3.5 버전에 추가되었다. 처음에는 함수의 반환값에 대한 자료형만 지원했지만 python 3.6 버전부터는 변수에도 타입 힌트 표기가 가능해졌다.
다만, 힌트는 어디까지나 힌트이므로 다른 타입의 값을 할당해도 오류가 발생하지는 않는다.
def tot_length1(word: str, num: int) -> int:
word_len: int = len(word)
return word_len * num