1. Function 속성(attribute)
클래스 및 개체의 속성을 설정하는 방법과 유사하게 함수에도 속성을 설정할 수 있습니다.
def func(x):
intermediate_var = x**2 + x + 1
if intermediate_var % 2:
y = intermediate_var ** 3
else:
y = intermediate_var **3 + 1
# setting attributes here
func.optional_return = intermediate_var
func.is_awesome = 'Yes, my function is awesome.'
return y
y = func(3)
print('Final answer is', y)
# Accessing function attributes
print('Show calculations -->', func.optional_return)
print('Is my function awesome? -->', func.is_awesome)
함수의 속성은 어디에서든지 설정할 수 있고, 함수 내부, 외부 상관 없이 어떤 곳에서든 사용할 수 있습니다.
2. For-else loop
파이썬에서는 for 루프에 else 절을 추가할 수 있습니다. else 절은 실행 중에 루프 본문 내에서 break 문이 발견되지 않은 경우에만 트리거됩니다.
my_list = ['some', 'list', 'containing', 'five', 'elements']
min_len = 3
for element in my_list:
if len(element) < min_len:
print(f'Caught an element shorter than {min_len} letters')
break
else:
print(f'All elements at least {min_len} letters long')
else는 if 수준이 아니라 for 수준에서 들여쓰기됩니다. break 문이 발생했는지 여부를 추적하는 별도의 변수를 사용하여 구현할 수도 있습니다.
3. ‘int’를 구분하기 편리하게 해주는 구분자
파이썬은 가독성을 향상시키기 위해 구분자로 밑줄을 사용할 수 있습니다. 따라서 1_000_000은 단일 int로 해석됩니다.
a = 3250
b = 67_543_423_778
print(type(a))
print(type(b))
print(type(a)==type(b))
4. eval() 과 exec()
파이썬은 문자열을 동적으로 읽고 파이썬 코드 처럼 처리하는 기능이 있습니다. 이것은 eval() 및 exec() 함수를 사용하여 달성됩니다('eval'은 표현식 평가용이고 'exec'는 명령문 실행용).
a = 3
b = eval('a + 2')
print('b =', b)
exec('c = a ** 2')
print('c is', c)
동적으로 생성된 문자열을 전달할 수도 있습니다. 이를 통해 일반적으로 프로그래밍의 더 넓은 맥락에서 eval/exec를 사용하여 해결하기 어려운 문제를 해결할 수 있습니다.
5. 줄임표(Ellipsis)
줄임표 또는 '...'은 None, True, False 등과 같은 내장 상수와 유사한 파이썬의 내장 상수입니다. 따라서 줄임표는 아직 코드가 완전히 작성되지 않은 경우 문법 오류를 통과하기 위한 자리 표시자로 사용할 수 있습니다.
def some_function():...
def another_function():pass
줄임표는 아직 작성되지 않은 코드에 대한 플레이스 홀더로 사용할 수 있습니다. 또한, "None"의 대체로도 사용될 수 있습니다. 이 경우 줄임표가 자리 표시자 역할을 할 수 있습니다.
'파이썬 > Basic' 카테고리의 다른 글
파이썬 디스크립터란? (0) | 2023.06.28 |
---|---|
파이썬 함수에 대한 4가지 고급 트릭 (0) | 2023.06.27 |
파이썬에서 람다식(Lambda Expression) 사용하기 (0) | 2023.04.04 |
파이썬 match-case 문 (0) | 2023.04.03 |
파이썬의 자료형 (0) | 2023.04.02 |