相关疑难解决方法(0)

Python相当于Typescript接口

最近我一直在使用Typescript,它允许表达如下内容:

interface Address {
    street: string;
    housenumber: number;
    housenumberPostfix?: string;
}

interface Person {
    name: string;
    adresses: Address[]
}

const person: Person = {
    name: 'Joe',
    adresses: [
        { street: 'Sesame', housenumber: 1 },
        { street: 'Baker', housenumber: 221, housenumberPostfix: 'b' }
    ]
}
Run Code Online (Sandbox Code Playgroud)

非常简洁,并在使用人员编码时将所有奢侈品作为类型检查和代码完成.

这是如何在Python中完成的?

我一直在看Mypy和ABC但是还没有成功找到pythonic方式做类似上面的事情(我的尝试导致了太多的样板符合我的口味).

python static-typing typescript mypy

27
推荐指数
5
解决办法
7719
查看次数

类型提示实例变量Python的约定

不确定类型提示实例变量的Python约定 - 我一直在__init__构造函数参数中执行它们,如下所示:

class LoggedVar(Generic[T]):
    def __init__(self, value: T, name: str, logger: Logger) -> None:
        self.name = name
        self.logger = logger
        self.value = value`
Run Code Online (Sandbox Code Playgroud)

链接到上面的代码段:https://docs.python.org/3/library/typing.html#user-defined-generic-types

但我也看到PEP约定注释实例变量(下面的代码段),然后在__init__参数中进行类型提示:

class BasicStarship:
    captain: str = 'Picard'               # instance variable with default
    damage: int                           # instance variable without default
    stats: ClassVar[Dict[str, int]] = {}  # class variable`

    def __init__(self, damage: int, captain: str = None):
        self.damage = damage
        if captain:
            self.captain = captain  # Else keep the default …
Run Code Online (Sandbox Code Playgroud)

python conventions instance-variables type-hinting python-3.x

9
推荐指数
2
解决办法
1780
查看次数