我尝试为类属性添加类型提示,但 Pycharm 不支持?
Python版本:3.9 平台:win10
class Person:
name: str
id: int
msg: Person = Person()
msg.name: str = 'test' # err msg is 'Non self attributes cannot have type hints'
有什么建议吗?或者只使用
msg.name: str = 'test'
并忽略 Pycharm err msg
因此,您不能将类型分配给类定义之外的类属性。这会导致如下不一致的情况:
class A:
x: int
a = A()
a.x: int = 1
b = A()
b.x: str = 'test'
# What is the type of the x attribute now?
# Types must be consistent across class instances
好消息是,您不需要这样做。该类型是从示例中的类定义中获取的,因此您只需说:
class Person:
name: str
id: int
msg = Person()
msg.name = 'test'
如果“test”不是字符串,您的类型检查器会引发错误。
一个重要的收获是使用类型并不意味着您必须在任何地方使用类型 - 只要足以很好地定义类型即可。一般来说,函数应该注释所有参数和返回类型,类应该像您所做的那样具有类型注释,但除此之外,类型通常是可推断的。请注意,在新示例中,我没有在 msg 行上添加类型 - 该类型应该是可推断的。