Python의 repr( ) 함수 이해
repr()
객체의 평가 가능한 문자열 표현("eval()"할 수 있음). 즉, Python 객체에 대해 평가하는 문자열 표현임을 의미합니다.
즉, 다음과 같습니다.
>>> x = 'foo'
>>> repr(x)
"'foo'"
질문:
- 할 때 큰따옴표가 나오는 이유는 무엇입니까?
repr(x)
(받을 때는 받지 않습니다.str(x)
) - 사용자가 필요한 이유
'foo'
내가 할 때는eval("'foo'")
그리고 x가 아니라 어떤 것이 목적입니까?
>>> x = 'foo'
>>> x
'foo'
그래서 그 이름은x
에 부착됨'foo'
현을 매다예를 들어 전화를 걸 때repr(x)
통역사가 말합니다.'foo'
대신에x
그리고 나서 전화합니다.repr('foo')
.
>>> repr(x)
"'foo'"
>>> x.__repr__()
"'foo'"
repr
실제로 마법의 방법이라고 합니다.__repr__
의x
값의 표현을 포함하는 문자열을 제공합니다.'foo'
에 할당된.x
그래서 그것은 돌아옵니다.'foo'
내부의""
결과적으로"'foo'"
의 생각repr
해석기에 입력할 수 있는 일련의 기호가 포함된 문자열을 제공하고 인수로 전송된 동일한 값을 얻는 것입니다.repr
.
>>> eval("'foo'")
'foo'
우리가 전화할 때eval("'foo'")
우리가 타이핑하는 것과 같습니다.'foo'
통역으로바깥쪽 문자열의 내용을 직접 입력하는 것과 같습니다.""
통역으로
>>> eval('foo')
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
eval('foo')
File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
전화하면,eval('foo')
우리가 타이핑하는 것과 같습니다.foo
통역으로하지만 없습니다.foo
변수를 사용할 수 있으며 예외가 발생합니다.
>>> str(x)
'foo'
>>> x.__str__()
'foo'
>>>
str
객체의 문자열 표현일 뿐입니다(예를 들어,x
변수는 다음과 같습니다.'foo'
), 이 함수는 문자열을 반환합니다.
>>> str(5)
'5'
정수의 문자열 표현5
이라'5'
.
>>> str('foo')
'foo'
그리고 문자열의 문자열 표현'foo'
동일한 문자열입니다.'foo'
.
대화형 통역사가 사용하는 피드백repr
역시. 표현식을 입력할 때 (그것을 그대로 두어라.expr
), 통역사는 기본적으로 합니다.result = expr; if result is not None: print repr(result)
예에서 두 번째 줄은 문자열 형식 지정입니다.foo
원하는 표현으로 ('foo'
) 그리고 통역사는 다음을 만듭니다.repr
그것에 대한 진술, 당신에게 큰따옴표를 남깁니다.
%r을 이중 따옴표 및 단일 따옴표 이스케이프와 결합하여 인쇄하면 원하는 방식이 아닌 .py 파일에 쓰는 방식으로 인쇄되는 이유는 무엇입니까?
당신이 여기서 무엇을 묻고 있는지 잘 모르겠습니다.텍스트single ' and double " quotes
을 훑어보면.repr
한 종류의 인용문에 대한 이스케이프를 포함합니다.물론 그렇습니다. 그렇지 않으면 Python 규칙에 의한 유효한 문자열 리터럴이 아닐 것입니다.그게 바로 당신이 전화로 요청한 것입니다.repr
.
또한 참고:eval(repr(x)) == x
비유는 문자 그대로 의미하는 것이 아닙니다.이는 근사치이며 대부분의 (모든?) 기본 제공 유형에 적용되지만, 가장 중요한 것은 다음과 같은 유형과 논리적 "가치"에 대한 상당히 좋은 아이디어를 얻을 수 있다는 것입니다.repr
산출량.
str()
하는 데 되며, " " " 는 " " " 입니다.repr()
는 개발 중 디버깅에 사용됩니다.그리고 그것은 물체의 공식적인 표현입니다.
예:
>>> import datetime
>>> today = datetime.datetime.now()
>>> str(today)
'2018-04-08 18:00:15.178404'
>>> repr(today)
'datetime.datetime(2018, 4, 8, 18, 3, 21, 167886)'
출력을 통해 우리는 그것을 알 수 있습니다.repr()
날짜 개체의 공식 표현을 보여 줍니다.
의 결과repr('foo')
문자열입니다. 'foo'
Python 쉘에서 표현의 결과는 표현으로도 표현되므로 기본적으로 다음과 같습니다.repr(repr('foo'))
.
2)eval
식의 결과를 계산합니다.결과는 항상 값(예: 숫자, 문자열 또는 개체)입니다.다중 변수는 다음과 같이 동일한 값을 나타낼 수 있습니다.
x = 'foo'
y = x
x와 y는 이제 동일한 값을 나타냅니다.
당신이 여기서 무슨 말을 했는지 전혀 모르겠습니다.예시와 보고 싶은 것을 게시해 주시겠습니까?
라고 말할 때
foo = 'bar'
baz(foo)
당신은 통과하지 않습니다.foo
에▁baz
기능.foo
이 경우 값을 나타내는 데 사용되는 이름일 뿐입니다.'bar'
그 은 그고그값다전로달다니됩으음은리▁the다니▁is로 전달됩니다.baz
기능.
언급URL : https://stackoverflow.com/questions/7784148/understanding-repr-function-in-python
'programing' 카테고리의 다른 글
각 열 이름에 접미사(또는 접두사)를 추가하는 방법은 무엇입니까? (0) | 2023.07.20 |
---|---|
JSON_ARRAGEG 내부의 JSON_OBJ는 때때로 json 배열을 반환하고 때로는 string을 반환합니다. (0) | 2023.07.20 |
Python 튜플을 문자열로 변환 (0) | 2023.07.20 |
SQL Server가 저장 프로시저에서 varchar를 자동으로 잘라냅니다. (0) | 2023.07.15 |
gdb에 여러 개의 기호 파일을 로드하는 방법 (0) | 2023.07.15 |