2016-10-04 9 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'と思う理由は、何らかのインポートエイリアシングの理由です。コードベースに関連している可能性があります。 –

答えて

2

config.add_request_methodを使用する実装の詳細です。要求メソッドを追加する場合、pyramid.utilモジュールにあるInstancePropertyHelperを使用して新しいクラスオブジェクトが作成されます。これはおそらく修正される可能性がありますが、実際のクラスはpyramid.request.Requestとなっています。