2016-10-04 15 views
2

저는 Python을 처음 사용하고 있으며 좋은 코드를 작성하는 방법을 배우기 위해 Pyramid를 연구 중입니다. 나는이 루트 공장 코드 작성 :pyramid.util.Request 소스 코드

class RootFactory(object): 
    def __acl__(self): 
     return [ 
      (Allow, 'group:alfa', 'alfa'), 
     ] 

    def __init__(self, request): 
     print(type(request)) 
     pass 

을하고 그 결과는 "요청"<class 'pyramid.util.Request'> 것을 보여준다하지만 모듈 pyramid.util.py을 열면, 내가 발견하지 않는 클래스 요청의 소스 코드를 볼 수 있습니다. 나는이 클래스가 모듈에 있다고 생각한다.

누군가가 어떻게 작동하는지 설명 할 수 있을까?

+0

예. 그것은'pyramid.request.Request'입니다. 필자가 'pyramid.util.Request'일 수 있다고 생각하는 유일한 이유는 일종의 import aliasing 이유입니다. 코드베이스와 관련이있을 수 있습니다. –

답변

2

config.add_request_method을 사용하는 구현 세부 사항입니다. 요청 메소드를 추가 할 때 pyramid.util 모듈에있는 InstancePropertyHelper을 사용하여 새 클래스 객체가 작성됩니다. 이것은 아마도 고칠 수 있지만, 결국 우리가 신경 쓰는 실제 수업은 pyramid.request.Request이므로 문제가 있는지 살펴 봐야합니다.