본문은 영문 가이드 문서의 이해를 높이기 위한 예제를 소개한다.
% 조작자를 사용한 예제이다.
class hero:first = '귀도'
middle = '반'
last = '로썸'
# 순서대로 상수를 넘겨 준다.
print("%s %s %s" % (hero.first, hero.middle, hero.last))
format 메소드를 사용한 예제이다.
# % 조작자 처럼 입력 순서대로 처리print("{} {} {}".format(hero.first,hero.middle,hero.last))
# 입력 순서의 구분자(integer)를 사용
print("{0} {2} {1}".format(hero.first,hero.last,hero.middle))
# 매칭한 구분자(name)를 사용
print("{first} {middle} {last}".format(first=hero.first,last=hero.last,middle=hero.middle))
# 클래스 오브젝트를 사용
print("{me.first} {me.middle} {me.last}".format(me=hero))
1, 2번의 모든 결과는 “귀도 반 로썸”으로 동일하다.
포맷 사용하면 편의성 뿐만 아니라 좀 더 복잡하고 다양한 로직을 구현할 수 있다.
format 메소드의 강력한 응용 예제이다.
class tclass:def __format__(self, arg):
if arg == 'upper':
return 'METHOD: FORMAT'
return 'method: format'
def __str__(self):
return 'method: str'
def __repr__(self):
return 'method: repr'
c = tclass()
# 이름 구분자를 통한 처리, 특정 메소드 호출 및 포멧 인자값 활용
print('{name!r}\n{name!s}\n{name}\n{name:upper}'.format(name=c))
OUTPUT>>
method: repr method: str method: format METHOD: FORMAT
# integer 형태의 구분자 처리 및 날짜 내부 포멧 메소드 활용
print(‘{0:%Y-%m-%d %H:%M:%S}\n{0:%Y}'.format(datetime.now()))
OUTPUT>>
2016-01-09 16:17:58 2016
아이가 말을 하면서 즐거움을 느끼듯이, 파이썬은 즐겁다.
References
파이썬 문자 매뉴얼https://docs.python.org/3.5/library/string.html#grammar-token-conversion
커버 사진
0 개의 댓글:
댓글 쓰기