如何将另一个实例中定义的列表或对象调用到另一个实例中?

How do I call a list or object defined in another instance into another instance?

class Sieve:
def __init__(self, digit):
    self.digit = []
    numbers = [True]*digit
    if digit <= -1:
        raise RuntimeError("Cannot use negative values.")
    numbers[0] = False
    numbers[1] = False

def findPrimes(self):
    for i in range(len(self.digit)):
        if numbers[i]:
            j = (i+i)
            while (j < len(numbers)):
                numbers[j] = False
                j += i
                print(numbers)

这是我在 Whosebug 上的第一个 post,在尝试了很长时间弄清楚该怎么做并搜索了 Internet 之后,恐怕我不得不在这里问一下。 我的程序应该在初始 class 中找到给定任何数字的所有素数。我试图检查我的 findPrimes(),但我在尝试获取要打印的值时遇到了困难。我一直收到错误 "numbers is not defined"。我应该在 findPrimes 之外定义它吗?或者有没有一种特定的方法可以从 init 调用数字到 findPrimes?谢谢!

根据您的 post,您的函数没有缩进,因此它们是在您的 class 之外定义的。

请记住,python 由于缺少大括号之类的东西,因此严重依赖缩进。

此外,您的变量是函数的局部变量,而不是 class 的属性。您需要将它们添加到您的 class 中,方法是在它们前面加上 self.(就像您对 self.digit 所做的那样)。

所以 self.numbers = ... 而不是 numbers = ...