programing

Python의 repr( ) 함수 이해

abcjava 2023. 7. 20. 21:35
반응형

Python의 repr( ) 함수 이해

repr()객체의 평가 가능한 문자열 표현("eval()"할 수 있음). 즉, Python 객체에 대해 평가하는 문자열 표현임을 의미합니다.

즉, 다음과 같습니다.

>>> x = 'foo'
>>> repr(x)
"'foo'"

질문:

  1. 할 때 큰따옴표가 나오는 이유는 무엇입니까?repr(x)(받을 때는 받지 않습니다.str(x))
  2. 사용자가 필요한 이유'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

반응형