Как аргументы производного класса работают в Python? - PullRequest
0 голосов
/ 30 марта 2020

Мне трудно понять одну вещь в Python. Я кодировал в Python с очень долгого времени, но есть кое-что, что меня просто поразило сегодня, и я изо всех сил пытаюсь понять

Так что Ситуация выглядит следующим образом

У меня есть миксин и представление

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

Почему аргумент запроса является экземпляром представления класса, это должен быть запрос. Пожалуйста, помогите мне прояснить эти понятия.

1 Ответ

1 голос
/ 30 марта 2020

Вы передаете self явно как первый аргумент get_session. Это означает, что он входит в параметр request.

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

Я думаю, вы имеете в виду:

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