简体   繁体   中英

How does derived class arguments work in Python?

I am having difficulty understanding one thing in Python.I have been coding in Python from a very long time but there's is something that just struck me today which i struggle to understand

So the situation goes like this

I have a mixin and a view

class Mixin:
    def get_session(self,request,*args,**kwargs):
        print(self) #should be the instance passed
        print(request) #should be the request object passed but it's also an instance

class View:
     def get(self,request,*args,**kwargs):
         self.get_session(self,request,*args,*kwargs)
         pass

Why is the request argument the instance of the Class View, It should be request.Please help me clarify these concepts.

You're passing self explicitly as the first argument of get_session . That means it goes into the request parameter.

self.get_session(self,request,*args,*kwargs)
  ^               ^        ^^^^^^^^^^
(self)        (request)    (the rest)

I think you mean:

self.get_session(request, *args, **kwargs)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM