2024-06-16 12:48:32 发布
网友
我试图理解在python中重用模块中类实例的最佳方法。。。在
在ruby中,我可以通过执行以下操作来完成此操作:
module MyMod def client @var ||= DBClient.new end def query client.select(...) end end
假设下面的内容在python中是等价的吗?在
在python标准中,上面的内容可以吗?有更好的方法吗?谢谢你的帮助
不,这些东西一点都不一样。Ruby代码实例化一次连接并将其分配给一个实例var;Python代码在每次调用query时创建一个新的Client实例,尽管它们共享连接实例。在
query
但不需要添加包装。如果要创建一次,请在模块级别执行此操作:
connection = DBClient() def query(): connection.select(...)
实际上,您应该停止用Python编写Ruby;如果您想编写Python,您应该学习如何用Python编写习惯用法的东西,而不是简单地直接翻译Ruby代码。在
不,这些东西一点都不一样。Ruby代码实例化一次连接并将其分配给一个实例var;Python代码在每次调用
query
时创建一个新的Client实例,尽管它们共享连接实例。在但不需要添加包装。如果要创建一次,请在模块级别执行此操作:
实际上,您应该停止用Python编写Ruby;如果您想编写Python,您应该学习如何用Python编写习惯用法的东西,而不是简单地直接翻译Ruby代码。在
相关问题 更多 >
编程相关推荐