https://github.com/PyMySQL/PyMySQL/blob/v1.1.0/pymysql/__init__.py#L135
Connect = connect = Connection = connections.Connection
と書いてあるのですから、そのモジュール(つまりpymsql.__init__.py
)のグローバル変数 Connect
connect
Connection
には全て同じオブジェクト connections.Connection
を代入しますよ、ということですね。
(a = b = 2
で a にも b にも 2が代入されます。というどうということはない構文だと思います)
connections.Connection
の connections
は上の方
https://github.com/PyMySQL/PyMySQL/blob/v1.1.0/pymysql/__init__.py#L78
from . import connections
で相対インポートされてますから、pymysql.connections
というモジュールです。
実体は
https://github.com/PyMySQL/PyMySQL/blob/v1.1.0/pymysql/connections.py
です。
この中に
https://github.com/PyMySQL/PyMySQL/blob/v1.1.0/pymysql/connections.py#L92
でクラスでConnection
が定義されていますから、connections.Connection
という名前を参照すると出てくるのはそのクラスです。
Connect = connect = Connection = connections.Connection
という文は、connections.Connection
という名前(が参照しているクラス)をConnect
connect
Connection
という名前でも扱えるようにしているだけの話です。
だから connect は Connection という型のエイリアスだ、という意味の表示がされています。
[_C@Connection]
の部分は特に分かりませんでした。pylanceが付ける独自の識別子でしょうか?
ただ[_C@Connection]
の部分が不明なだけで、それ以外何も不思議なコードはここにはなかったので回答してみました。
追記
python
1class A:
2 pass
3
4b = A
5
6b()
とか書いてみてb()
のbをポイントしてみれば、(type alias) b: type[A]
となって"bはtype aliasで、実体は型Aだ"と言われていることは分かるかと。
(「bは型Aだ」だけだと「bは型Aのインスタンスである」のと区別が出来ないので……)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。