manager: Manager = LocalProxy(lambda: get_manager()) 问题起源,lin-cms框架的lin的core文件的一句
a=1
b=2
c=3
class MyClass():
pass
d=4
a:MyClass=MyClass()
print(a,b,c,d)a:MyClass=c 这种冒号语法是什么意思?
2 回答
已采纳

pardon110
TA贡献1038条经验 获得超227个赞
冒号不是关键,这种写法是对变量标注赋值, 用BFC语法标记描述如下
annotated_assignment_stmt ::= augtarget ":" expression ["=" expression]
它的意思是 在单个语句中将变量或属性标注和可选的赋值语句合为一体。
标注通常用作类型提示或代码说明,你可以认为它是等同于强类型数据的类型)。
manager: Manager = LocalProxy(lambda: get_manager())
上述语句表明,声明了一个manager变量,预期接收Manager(通常为类名)数据类型。换而言之,manager变量是Manager实例,该变量来自于LocalProxy的返回值。
直白来说,相当于强类型语言的这种变量赋值写法,
Manager manager = LocalProxy(...)
如果你有go或者ts,哪怕是C,java相关静态编程语言的使用经验就不难理解了。除了变量标注,还有属性标注,函数标注。
添加回答
举报
0/150
提交
取消