【发布时间】:2015-06-16 05:48:54
【问题描述】:
我正在用 python 编写程序。我介绍了一个整数,程序返回给我这个数字的素因数分解。 例如 6 ---> 3, 2。另一个例子 16 --> 2, 2, 2, 2。
我正在使用 OOP 来做这件事。我创建了一个具有 2 种方法(is_prime 和 prime_factor_decomposition)的类(PrimeFactors)。第一种方法判断数字是否为素数,第二种方法返回分解。
这是代码:
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())
我弄错了。我认为这与方法调用有关。 我的问题是,如果它们都来自同一个类,我如何从另一个方法调用一个方法?
【问题讨论】:
标签: python oop python-3.x methods