LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

vadim@aquila:/tmp$ grep .  m*.py 
m1.py:class Chain3:
m1.py:  def func_3(self):
m1.py:    print('func_3()')
m1.py:class Chain2:
m1.py:  def __init__(self):
m1.py:    self._c3 = Chain3()
m1.py:  def func_2(self):
m1.py:    print('func_2()')
m1.py:    return self._c3
m1.py:class Chain1:
m1.py:  def __init__(self):
m1.py:    self._c2 = Chain2()
m1.py:  def func_1(self):
m1.py:    print('func_1()')
m1.py:    return self._c2
m2.py:import m1
m2.py:m1.Chain1().func_1().func_2().func_3()
m2.py:m1.Chain1().func_3().func_2().func_1()
vadim@aquila:/tmp$ time mypy m2.py 
m2.py:4: error: "Chain1" has no attribute "func_3"; maybe "func_1"?  [attr-defined]
Found 1 error in 1 file (checked 1 source file)

real	0m0,740s
user	0m0,674s
sys	0m0,062s
Status: 1
vadim@aquila:/tmp$ 

740 миллисекунд на проверку 18 строк кода.

Исходная версия wandrien, :

vadim@aquila:/tmp$ grep .  m*.py 
m1.py:class Chain3:
m1.py:  def func_3(self):
m1.py:    print('func_3()')
m1.py:class Chain2:
m1.py:  def __init__(self):
m1.py:    self._c3 = Chain3()
m1.py:  def func_2(self):
m1.py:    print('func_2()')
m1.py:    return self._c3
m1.py:class Chain1:
m1.py:  def __init__(self):
m1.py:    self._c2 = Chain2()
m1.py:  def func_1(self):
m1.py:    print('func_1()')
m1.py:    return self._c2
m2.py:import m1
m2.py:m1.Chain1().func_1().func_2().func_3()
m2.py:m1.Chain1().func_3().func_2().func_1()
vadim@aquila:/tmp$ time mypy m2.py 
m2.py:4: error: "Chain1" has no attribute "func_3"; maybe "func_1"?  [attr-defined]
Found 1 error in 1 file (checked 1 source file)

real	0m0,740s
user	0m0,674s
sys	0m0,062s
Status: 1
vadim@aquila:/tmp$ 

740 миллисекунд на проверку 18 строк кода. Это победа! xD