请教python的冒号语法

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   这种冒号语法是什么意思?
qq_1_156
浏览 3987回答 2
2回答

pardon110

冒号不是关键,这种写法是对变量标注赋值, 用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相关静态编程语言的使用经验就不难理解了。除了变量标注,还有属性标注,函数标注。

慕标4084357

冒号语法?
打开App,查看更多内容
随时随地看视频慕课网APP