在Python中调用同一类中另一个方法中的方法
在下面的类中,我希望输出为:在Python中调用同一类中另一个方法中的方法,python,class,methods,self,Python,Class,Methods,Self,在下面的类中,我希望输出为: here generating spike generate spike 2 some data 相反,输出是: here generating spike 我不知道我做错了什么。请帮忙 类别: class InjectAnomaly: def generate_drop(self): print('generate drop 2') print(self.data) return def ge
here
generating spike
generate spike 2
some data
相反,输出是:
here
generating spike
我不知道我做错了什么。请帮忙
类别:
class InjectAnomaly:
def generate_drop(self):
print('generate drop 2')
print(self.data)
return
def generate_spike(self):
print('generate spike 2')
print(self.data)
return
def inject(self):
spike_or_drop = self.type
if spike_or_drop is 'spike':
print('Generating spike')
self.generate_spike()
elif spike_or_drop is 'drop':
print('Generating drop')
self.generate_drop()
def __init__(self, type, data):
self.type = type
self.data = data
if self.type is not 'none':
print('here')
self.inject()
我看到了关于堆栈溢出的其他问题也在解决同样的问题,但我不知道我的做法有什么不同。
调用inject(),然后它标识什么的峰值输出?您有一个类,但没有显示如何创建该类的实例或调用生成观察到的输出的方法。
的使用是一个很大的危险信号。例如,没有任何语言保证任何两次出现的“spike”
都会指向同一个对象。使用==
。给定x='spike'
,x是'spike'
可能是真的,也可能不是真的(显然不是你的情况),但是x='spike'
总是真的。对于初学者来说,spike\u或\u drop是'spike'
是不正确的。决不能使用身份检查用的is
,来进行平等性检查。使用spike\u或\u drop='spike':
@chepner抱歉,这就是我创建该类实例的方式:inject\u normal=injectnormal(args.injectnormal,data)
并且该方法通过
调用,但你们都是对的-问题在于是的。非常感谢。