У меня есть объект src
и необязательный объект dest
. Если dest
не передается в функцию, создается новый MyObj
, который передается другой функции.
Использование mypy==0.610
дает мне:
ошибка: аргумент 2 к «copy_data» имеет несовместимый тип «Optional [MyObj]»; ожидается "MyObj"
Как мне сообщить MyPy, что dest
не является обязательным в функции copy_data
?
from typing import Optional
class MyObj(object):
def __init__(self, name):
self.name = name
def new_obj(name):
# type (str) -> MyObj
return MyObj(name=name)
def copy_stuff(src, dest=None, fname=None):
# type: (MyObj, Optional[MyObj], Optional[str]) -> MyObj
if not dest:
dest = new_obj(fname)
my_obj = copy_data(src, dest)
return my_obj
def copy_data(src, dest):
# type: (MyObj, MyObj) -> MyObj
return dest
copy_stuff
для хранения экземпляраMyObj
? - person BrenBarn   schedule 11.06.2018dest = dest or new_obj(fname)
- person Jamie Bull   schedule 11.06.2018v0.610
- person Jamie Bull   schedule 11.06.2018not dest
вместоdest is not None
? - person MisterMiyagi   schedule 11.06.2018