gpt4 book ai didi

python - 特拉维斯 ci : 'X' object has no attribute 'Y'

转载 作者:行者123 更新时间:2023-11-28 21:07:18 25 4
gpt4 key购买 nike

问题是打错了,感谢大家的帮助

我正在尝试在 travis-ci 中运行单元测试。有一次我有一个简化的类:

class X:

def __init__(self, var1):
self.var1 = var1

def Y(self):
return True

def Z(self):
return False

def call_function(self, function):
output = function(self.Y, self.Z, self.var1)

然后我调用 X.call_function,这在过去运行程序时没有给我带来任何问题。但是,在 travis-ci 中运行时,我被告知:

'X' object has no attribute 'Y'

奇怪的是,self.Z 似乎没有问题。

有人知道是什么原因造成的以及如何解决吗?

更新:为清楚起见,function 参数类似于:

def function(func1, func2, var1):
if type(var1) == int:
func1()
else:
func2()

然后主文件会是这样的:

x = X(3)
x.call_function(function)

最佳答案

您的 self.Y 参数返回函数本身,而不是它返回的值。相反,如果您的 self.Y 设置为 True,则 call_function 函数将起作用。要运行该函数,您可以在函数名称后加上方括号。

编辑:看起来您忘记了添加 self。不用担心,这是工作代码。 (当您创建一个类的实例时,会自动调用 self 参数。有关 self 的更多信息,check this out)

编辑 2:我更改了它,因此它返回函数。只需要 self 参数。

这是你的固定代码:

class X:

def __init__(self, var1):
self.var1 = var1

def Y(self):
return True

def call_function(self, function):
output = function(self.Y, self.var1)

关于python - 特拉维斯 ci : 'X' object has no attribute 'Y' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004999/

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