问题
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.
回答1:
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)
来源:https://stackoverflow.com/questions/60929560/how-does-derived-class-arguments-work-in-python