Мне сложно понять этот кусок кода. Я понимаю, что мы используем некоторый макет вместо конечной точки API, чтобы сэкономить время на тестах.classmethod lambda Python
То, что я не понимаю, является структурой classmethod (lambda cls: self.preapproval). В чем смысл использования lambda cls, если внутри кода я вообще не использую cls.
Я надеюсь, что я достаточно ясно, я был бы очень рад, если кто-то может пролить некоторый свет на этот ..
Спасибо большое.
@patch("paypaladaptive.api.endpoints.UrlRequest",
MockUrlRequestPreapproval)
def test_preapproval(self):
# I don't understand this code, it is very confusing. Why do I need to use a lambda structure if in the code itself I don't use cls (self.preapproval)
MockUrlRequestPreapproval.preapproval = (
classmethod(lambda cls: self.preapproval))
self.assertTrue(self.preapproval.process())
self.preapproval = Preapproval.objects.get(pk=self.preapproval.pk)
self.assertNotEqual(self.preapproval.preapproval_key, "")
self.assertEqual(self.preapproval.status, "created")
@ GP89 А, правильно, он может принимать> = 1, потому что класс должен быть передан. Благодаря! – parchment
Это делает его намного яснее. Но почему нам нужен класс-метод в первом месте. Не могли бы мы поставить только лямбда? Или еще лучше, почему бы не просто: MockUrlRequestPreapproval.preapproval = self.preapproval – cyberjoac
Я думаю, это потому, что остальная часть кода ожидает classmethod. Выполнение чего-либо еще может изменить поведение класса. @cyberjoac – parchment