Size: a a a

2020 October 20

SS

Sergey Sokolov in PiterPy Meetup
Dmitry Alimov
у меня спросили как-то как @classmethod/@staticmethod реализованы, я не ответил, так что иногда полезно.
Щас бы такое на собеседовании спрашивать
Если конечно спрашивают не теоретически «как» а настоящую реализацию
источник

Б

Боброний in PiterPy Meetup
Dmitry Alimov
у меня спросили как-то как @classmethod/@staticmethod реализованы, я не ответил, так что иногда полезно.
источник

Б

Боброний in PiterPy Meetup
Sergey Sokolov
Щас бы такое на собеседовании спрашивать
Если конечно спрашивают не теоретически «как» а настоящую реализацию
Ну не думаю, что просили код C по памяти зачитать)
источник

SS

Sergey Sokolov in PiterPy Meetup
Боброний
Ну не думаю, что просили код C по памяти зачитать)
источник

DA

Dmitry Alimov in PiterPy Meetup
в документации есть пример как оно будет выглядеть на python)
источник

Б

Боброний in PiterPy Meetup
Написал не подсматривая, вроде должно работать

from functools import partial

class classmethod:
   def __init__(fn):
       self.fn = fn

   def __get__(self, instance, owner):
       return partial(self.fn, owner)
источник

DA

Dmitry Alimov in PiterPy Meetup
Боброний
Написал не подсматривая, вроде должно работать

from functools import partial

class classmethod:
   def __init__(fn):
       self.fn = fn

   def __get__(self, instance, owner):
       return partial(self.fn, owner)
👍🏻😎
источник

Б

Боброний in PiterPy Meetup
А в доке чего-то не нвшел
источник

Б

Боброний in PiterPy Meetup
Боброний
Написал не подсматривая, вроде должно работать

from functools import partial

class classmethod:
   def __init__(fn):
       self.fn = fn

   def __get__(self, instance, owner):
       return partial(self.fn, owner)
Ха, перепутал instance и owner местами
источник

MK

Maxim Koltsov in PiterPy Meetup
можно заставить flake8 проверять, что все функции имеют аннотации в сигнатуре?
источник

MK

Maxim Koltsov in PiterPy Meetup
Боброний
Написал не подсматривая, вроде должно работать

from functools import partial

class classmethod:
   def __init__(fn):
       self.fn = fn

   def __get__(self, instance, owner):
       return partial(self.fn, owner)
интересно, а без дескрипторов это не делается?
источник

Б

Боброний in PiterPy Meetup
Maxim Koltsov
можно заставить flake8 проверять, что все функции имеют аннотации в сигнатуре?
mypy плагин какой-нибудь?
источник

DB

Dima Boger in PiterPy Meetup
Maxim Koltsov
можно заставить flake8 проверять, что все функции имеют аннотации в сигнатуре?
У майпая есть опция
источник

MK

Maxim Koltsov in PiterPy Meetup
Dima Boger
У майпая есть опция
о, круто
источник

Б

Боброний in PiterPy Meetup
Maxim Koltsov
интересно, а без дескрипторов это не делается?
Делается, кстати
источник

MK

Maxim Koltsov in PiterPy Meetup
включить её на CI что ли
источник

DB

Dima Boger in PiterPy Meetup
disallow_untyped_defs = True
источник

MK

Maxim Koltsov in PiterPy Meetup
👍
источник

MK

Maxim Koltsov in PiterPy Meetup
спасибо)
источник

DB

Dima Boger in PiterPy Meetup
Набор мазохиста:
show_error_codes = True
pretty = True
disallow_untyped_defs = True
warn_redundant_casts = True
strict_equality = True
disallow_untyped_calls = True
warn_return_any = True
warn_unreachable = True
warn_unused_configs = True
источник