我有一个简单的类:
connection
有db连接
import pandas as pd
from animal import kettle
class cat:
def foo(connection):
a=pd.read_sql('select * from zoo',connection)
return1= kettle.boo1(a)
return2= kettle.boo2(a)
return return1,return2
现在我想把a
传递给水壶的boo1
和boo2
,我在上面foo()中传递它的方式正确吗?你知道吗
我认为上面的方法是正确的,我试过这种方法,但这种方法正确吗?你知道吗
class kettle:
def boo1(return1):
print(return1)
def boo2(return2):
print(return2)
抱歉,如果这不合理,
我的意图是将a
传递给boo1
和boo2
类的kettle
你的问题有(许多)可能的解决方案,不管是什么。我假设您刚开始在Python中进行面向对象编程,并根据
可能想要这个解决方案:
为类方法提供实例参数:
在中实例化cattle类猫腻地址:
然后像这样使用:
boo2方法也是如此。你知道吗
您可能还想:
当您的方法返回
None
时。你知道吗这看起来是正确的方法:首先将
pd.read_sql('select * from zoo', connection)
的返回值赋给a
,然后将a
传递给kettle.boo1
和kettle.boo2
,这样可以确保只执行一次可能耗时的数据库IO。你知道吗在传递list/dicts/dataframes等对象时,这个设计模式需要记住的一点是
kettle.boo1
是否会更改a
中的值。如果是这样,kettle.boo2
将接收修改后的a
版本作为输入,这可能导致意外行为。你知道吗下面是一个非常简单的例子:
相关问题 更多 >
编程相关推荐