1. 让人蒙圈的python类型注解

database_manager:"BaseDatabaseManager"是个什么东东?
这个东西是python 3.6之后增加的新特性,看看这篇文章就知道了:Python 3 新特性:类型注解

本来应该是:
database_manager:BaseDatabaseManager,但是代码的作者可能是遇到了python包包含问题,
所以改成了:
database_manager:"BaseDatabaseManager",其实还是一个类型注解,只对类编辑环境有意义,对执行没有影响。

2. 看看下面的简单例子就可以明白

就比如:

>>> a : int = 10
>>> b : int = 1.2
>>> c:"int" = 3
>>> d:"int" = 3.1
>>> type(a)
<class 'int'>
>>> type(b)
<class 'float'>
>>> type(c)
<class 'int'>
>>> type(d)
<class 'float'>

无论a,b,c,d的类型注解为什么,随着它们的赋值不同,它们变量的类型是不一样的。

3. 结论:

变量类型注解只是给代码编辑器使用和方便读者理解用的,不会限制实际赋值之后的数据类型。