객체를 string 타입의 변수로 변환하는 방법, 객체를 문자열로 출력하는 방법을 소개합니다.
1. str()으로 객체를 문자열로 변환
아래 변수들은 모두 1을 의미하지만, 타입이 모두 다릅니다. 일반적으로 사용할 때는 문제가 없지만, 어떤 상황에서 인자로 string 타입만 사용될 때, 타입을 변환하지 않으면 runtime에 에러가 발생할 수도 있습니다.
a = '1'
b = 1
c = 1.0
print(a, ":", type(a))
print(b, ":", type(b))
print(c, ":", type(c))
Output:
1 : <class 'str'>
1 : <class 'int'>
1.0 : <class 'float'>
아래와 같이 str()
을 사용하여 객체를 문자열로 변환할 수 있습니다. 이 함수는 인자로 전달된 객체를 문자열 변환하여 리턴합니다.
b = 1
c = 1.0
d = str(b)
e = str(c)
print(d, ":", type(d))
print(e, ":", type(e))
Output:
1 : <class 'str'>
1.0 : <class 'str'>
1.1 list, tuple, dict
리스트 같은 객체도, str()
으로 문자열로 변환할 수 있습니다. print()
로 출력해서 보면 리스트나 문자열이나 차이가 없어보이지만, 다른 타입의 객체입니다.
my_list = [1, 2, 3, 4, 5]
print(my_list)
print(type(my_list))
str_list = str(my_list)
print(str_list)
print(type(str_list))
Output:
[1, 2, 3, 4, 5]
<class 'list'>
[1, 2, 3, 4, 5]
<class 'str'>
튜플이나, 딕셔너리도 str()
로 문자열 변환이 가능합니다.
my_tuple = (1, 2, 3, 4, 5)
str_list = str(my_tuple)
print(str_list)
print(type(str_list))
my_dict = {1: 'a', 2: 'b', 3: 'c'}
str_dict = str(my_dict)
print(str_dict)
print(type(str_dict))
Output:
(1, 2, 3, 4, 5)
<class 'str'>
{1: 'a', 2: 'b', 3: 'c'}
<class 'str'>
2. f-string으로 문자열 변환
다른 문자열과 객체의 내용을 함께 문자열로 변환할 때 f-string을 사용할 수 있습니다.
아래 예제는 문자열 사이에 객체의 내용을 추가하여 새로운 문자열로 만듭니다.
my_tuple = (1, 2, 3)
my_dict = {1: 'a', 2: 'b', 3: 'c'}
s = f"Tuple is {my_tuple} and Dictionary is {my_dict}"
print(s)
Output:
Tuple is (1, 2, 3) and Dictionary is {1: 'a', 2: 'b', 3: 'c'}
3. __str__()
로 객체의 내용을 문자열로 출력
아래 예제는 Person 클래스를 정의 및 객체를 생성하였고, print()
로 객체를 출력하였습니다.
그런데 결과를 보면, 의미를 갖기 어려운 객체의 주소 값이 출력됩니다.
class Person:
def __init__(self, name) -> None:
self.name = name
p = Person("John")
print(p, " ", type(p))
Output:
<__main__.Person object at 0x7f19e9b70e50> <class '__main__.Person'>
만약 Java의 toString()
처럼, 디버깅 등의 목적으로 객체의 주요 정보를 출력하고 싶다면 파이썬에서는 __str__()
를 이용할 수 있습니다.
아래와 같이 클래스에 __str__()
를 구현하여 원하는 정보를 문자열로 만들어 리턴하도록 구현합니다. 실제로 객체가 출력될 때 이 문자열이 출력됩니다.
class Person:
def __init__(self, name) -> None:
self.name = name
def __str__(self) -> str:
return f"[Person name = {self.name}]"
p = Person("John")
print(p, " ", type(p))
Output:
[Person name = John] <class '__main__.Person'>
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)