【发布时间】:2020-05-17 14:53:09
【问题描述】:
有时,python 的动态类型系统让人难以理解为什么有些东西会起作用。例如:
- 为什么 pandas.read_sql()接受并按预期工作从 pymysql.connect() 返回的 pymysql.Connection 对象? 注意,pandas 文档中没有任何地方指出接受 pymysql.Connection 对象。
我正在寻找对上述问题的一些澄清和一些关于如何概括类似情况的建议。
【问题讨论】:
-
你是什么意思,“为什么”?你可以传递任何你想要的值,只要它可以以函数尝试使用它的方式使用。
-
@chepner 查看编辑
-
这是一个比 SO 更适合pandas 用户的问题。据我所知,代码没有问题,而是为什么开发人员选择按照他们的方式做某事。
-
@EdekiOkoh 不是,和python有关,我只是举了一个可以泛化的例子。
-
显然,
pandas.read_sql在内部所做的事情恰好适用于pymysql.Connection实例。你可能会问为什么“交替踩下左右踏板”让自行车和汽车都前进,即使这个程序只是为自行车设计的。用汽车来做这件事,或者将pandas.read_sql与pymysql.Connection一起使用不是一个好主意。
标签: python python-3.x pandas pymysql pandasql