2017-09-13 7 views
2

필자는 아마도 이것이 문서의 어딘가에 있음을 알고 있지만 검색을 되돌리기는 다소 어렵습니다. 우리가 명시 적으로 print 함수 (호출하지 않음) 일 때, 에코 결과의 이름은 무엇입니까?파이썬에서 기능을 인쇄 할 때 결과에 ​​대한 올바른 용어가 표시됩니다.

예 :

def func(): 
    pass 

print(func) 

결과 : 결과는 무엇을

<function func at 0x7f5f539587b8> 

라고? 또 다른 예는 <class '__main__.a'>입니다.

이러한 결과가 무언가에도 사용될 수 있는지 저에게 말할 수있는 특별한 사람에게 특별한 명성이 있습니다.

답변

2

이것은 개체의 "문자열 표현"입니다. 이것은 기본적으로 파이썬이 문자열로 객체를 표현하는 가장 좋은 방법입니다.

첫 번째 경우에 파이썬은 "메모리 위치 0x7f5f539587b8에 'func'이라는 이름의 함수입니다. 그것은 당신이 그것을 더 잘 표현하지 않고 당신에게 줄 수있는 최고의 문자열 표현입니다. 두 번째 경우 파이썬에서

이라는 클래스 "를 말하고 있었다 'A'과는 ' 주요'모듈의 네임 스페이스에 있습니다.

당신은 __repr__을 정의하여이 값을 수정할 수 있습니다 . 특별 수업 방법 __repr__은 "형식적인 표현"과 "비공식적 인 표현"__str__을 제공 자세한 내용은 this를 참조

이를, 예를 들면 다음과 같습니다..

class A: 
    def __init__(self, unique_name): 
     self.unique_name = unique_name 

    def __repr__(self): 
     return "object of type A and name %s in the name-space of %s" \ 
       % (self.unique_name, __name__) 

a = A('foo') 
print(a) 

class B: 
    pass 

b = B() 
print(b) 

RET urns :

object of type A and name foo in the name-space of __main__ 
<__main__.B object at 0x7ffb9eb37668> 
+0

와우, 설명해 주셔서 감사합니다. –

+0

오신 것을 환영합니다! –