Python 中冒号和等号的用法

clu*_*s92 0 python python-3.x

class PrepareTableOperator(BaseOperator):
   def _load_table(self):
      drop_table_query: str = ( "drop table if exists " + self.get_table() )

Run Code Online (Sandbox Code Playgroud)

我是 python 的新手,但我确实有一点 Java 背景。我不明白的是 python 中冒号的用法。我用谷歌搜索了一下,它用于切片和启动函数定义。但上面没有“def”语法,所以对我来说这看起来不像一个函数。

我的问题是,Python中的冒号是什么,它是字典值的另一个赋值运算符,类似于键值对吗?这就是它在这里做的事吗?它本质上在这里做什么?

Mar*_*ces 5

在您的代码片段中,它是一个类型注释。这是 Python 的一个相对较新的功能,可让您跟踪数据类型,因此在本例中,它声明它drop_table_query是一个字符串。

类型注释由 IDE 检查,但不由 Python 解释器强制执行。这意味着这drop_table_query实际上可能是一个int并且Python本身不会抱怨。类型注释只是一种推荐。