我有two methods within the same class
,我想让一个方法中的list
在另一个方法中可用,我该怎么做
这是我的密码:
class Solution:
primes=[]
def primeNumber(self,n):
numbers = set(range(n, 1, -1))
self.primes = []
while numbers:
p = numbers.pop()
self.primes.append(p)
numbers.difference_update(set(range(p * 2, n + 1, p)))
def goodNumbers(self,f):
self.primes.append(f)
return self.primes
x=Solution()
print(x.primeNumber(100)) ##populate the list
print(x.goodNumbers(123456789)) ##return the list as populated by previous call, and with the long number appended
出于某种原因,self.primes不考虑goodNumbers()中附加的长数字-知道为什么吗
如前所述,您可以使用实例变量
self.primes
而不是局部变量primes
。如果计划重用这些值,这将非常有用相反,如果您只想使用这些值一次,并且希望
goodNumbers
调用primeNumber
,那么只需在primeNumber
的末尾添加return primes
(当然在while
循环之外)编辑
由于问题已被修改:
我刚看到你的问题。这是行不通的:如果您使用中读取/修改 它
self.primes
在方法之间传递数据,那么您需要首先创建它,可能是在对象初始化时,然后通过调用primeNumber
填充它,然后可以在^{例如:
您可以将列表作为变量添加,并将数据传递给: e、 g
相关问题 更多 >
编程相关推荐