如何从另一个方法调用一个方法?

pab*_*vas 1 python oop methods python-3.x

我正在用 python 编写程序。我引入一个整数,程序将这个数字的质因数分解返回给我。例如 6 ---> 3, 2. 另一个例子 16 --> 2, 2, 2, 2。

我正在用 OOP 做这件事。我创建了一个PrimeFactors具有 2 个方法(is_primeprime_factor_decomposition)的类()。第一种方法表示数字是否为素数,第二种方法返回分解。

这是代码:

class PrimeFactors(object):
    def __init__(self, number):
        self.number = number

    def is_prime(self):
        n = self.number - 1
        a = 0
        loop = True

        if self.number == 1 or self.number == 2:
            loop = False

        while n >= 2 and loop:
            if self.number % n != 0:
                n -= 1
            else:
                a += 1
                loop = False
        return a == 0

    def prime_factor_decomposition(self): 
        factors = [] 
        n = self.number - 1
        loop = True

        if PrimeFactors.is_prime(self.number):
            factors.append(self.number)
            loop = False

        while n >= 2 and loop:
            if self.number % n == 0 and PrimeFactors.is_prime(n):
                factors.append(n)
                self.number = self.number / n
                if self.number % n == 0:
                    n += 1
            n -= 1
        return factors

s = PrimeFactors(37)
print(s.is_prime())
Run Code Online (Sandbox Code Playgroud)

我犯了一个错误。我认为这与方法调用有关。我的问题是,如果它们都来自同一个类,我如何从另一个方法调用一个方法?

MrA*_*ley 7

您需要使用self.来调用同一类的另一个方法:

class Foo:
    def __init__(self):
        pass

    def method1(self):
        print('Method 1')

    def method2(self):
        print('Method 2')
        self.method1()
Run Code Online (Sandbox Code Playgroud)