gpt4 book ai didi

python - 将类实例方法传递给 Python 中的另一个函数 (2.7)

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:49 24 4
gpt4 key购买 nike

如果标题没有意义,我很抱歉,我对此比较陌生。这是我的代码:

class MeanFlow:
def __init__(self, V0=1):
self.V0 = V0
def LHS(self, t, y):
return y[0]*self.V0


def velocity_field(w,f):
z = 0 # dummy
u = f(z,w).real
v = -1*f(z,w).imag
return u, v

w0 = 1
mean = MeanFlow()
dwdz = mean.LHS
print(velocity_field(w0, dwdz))

但我收到错误 TypeError: 'int' object has no attribute '__getitem__'

我的问题是如何将这个函数(我的类实例的一个方法)传递给另一个函数。如果我在类外部定义函数并将其传递给另一个函数,这会起作用,但不是我想要的。谢谢!

编辑:拼写错误 return = y[0]*self.V0 已更正。

最佳答案

生成 TypeError: 'int' object has no attribute '__getitem__' 的原因是这样的:

y[0]

这是因为此时 y 的值为 1,一个整数,而 y[0] 就好像y 是一个列表或字符串(__getitem__ 是为获取列表中的项目而调用的方法)。如果 y 是一个列表(例如 y = [1]),它就可以正常工作。

如果您删除 [0],则说明您在做生意:

class MeanFlow:
def __init__(self, V0=1):
self.V0 = V0
def LHS(self, t, y):
return y*self.V0


def velocity_field(w,f):
z = 0 # dummy
u = f(z,w).real
v = -1*f(z,w).imag
return u, v

w0 = 1
mean = MeanFlow()
dwdz = mean.LHS
print(velocity_field(w0, dwdz))

关于python - 将类实例方法传递给 Python 中的另一个函数 (2.7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22808764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com