在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)
并且该方法通过
调用,但你们都是对的-问题在于
的。非常感谢。