티스토리 뷰

반응형

파이썬 3.8 이후 새로운 기능 설명입니다.

더 자세한 사항은 공식 문서 참고해주세요. [link]

 

Walrus Operator

:= 이게 바다코끼리처럼 보인다고 해서 지어진 이름이긴한데,

크게 와닿지는 않습니다. 

# Walrus operator
req = {'form': {'username': 'j', 'password': ''}}


def walrus_example(req):
    if len(password := req['form'].get('password')) > 5:
        return 'Good Password'
    else:
        return 'Too short'
        
def without_walrus_example(req):

    password = req['form'].get('password')
    if len(password) > 5:
        return 'Good Password'
    else:
        return 'Too short'

단순하게 한 줄을 줄여주는 느낌인 walrus 를 실제 사용을 얼마나 할지는 모르겠습니다. 

실제 사용을 할땐 () 를 써서 명확하게 구분 하는 편이 좋을 것 같습니다. 

 

Positional-only Parameter

백스페이스 / 를 사용해서 parameter의 위치를 지정해주는 역할을 합니다. 

keyword와는 다르게 위치만을 지정해놓은 상태라 keyword로 변경이 불가능합니다. 

# Positional-only arguments (/)

def positional_args(text, /, border='=', width=50):
    return f'{text}'.center(width, border)

>>> positional_args('Python3.8')
'====================Python3.8====================='

>>> positional_args(text = 'Python3.8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: positional_args() got some positional-only arguments passed as keyword arguments: 'text'

>>> positional_args('Python3.8', border='*')
'********************Python3.8*********************'

 

Precise Type

파이썬은 동적언어로 실행 시 자동으로 변수의 타입을 확인해서 저장을 해주지만,

정적언어 처럼 자료형을 지정해 줄수 있습니다. 

아래 예시는 float형인 number라는 변수를 받아 float를 리턴해주는 function 입니다. 

# Precise Type
def precise_type(number: float) -> float:
    return 2 * number

F string =

f string으로 print 할시에 =를 같이 받아서 

출력을 해주기 때문에, 디버깅하거나 테스트 할 때 편리할 듯 합니다. 

# f string
name = 'j'
print(f'{name=}')

name='j'

 

Unpacking

return, yield 값에 *를 같이 사용하면 오류가 나던 것이 해결됬습니다. 

# Unpacking
def unpacking():
    test = (4, 5, 6)
    return 1, 2, 3, *test

def before_py38():
    rest = (4, 5, 6)
    t = 1, 2, 3, *rest
    return t


>>> unpacking()
(1, 2, 3, 4, 5, 6)

 

이 외에도 속도도 향상됬다고 하고 좋다고 하지만

여전히 텐서플로우는 3.7까지만 지원을 하고 있기에

저는 별로 쓸 일이 없을 것 같습니다...

반응형

'Development > Python' 카테고리의 다른 글

[python] Run shell script with python  (1) 2021.01.01
[python] Environ or python-dotenv  (1) 2020.09.28
[python] dictionary 기본  (0) 2020.08.31
[python] csv 파일 저장하기  (0) 2020.08.23
파이썬 기초 (6분 컷)  (0) 2020.08.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함
반응형