我试图用静态变量和方法(属性和行为)在Python中创建一个类

import numpy

class SimpleString():
    popSize = 1000
    displaySize = 5
    alphatbet = "abcdefghijklmnopqrstuvwxyz "

    def __init__(self):
        pop = numpy.empty(popSize, object)
        target = getTarget()
        targetSize = len(target)

当代码运行时,虽然说它无法弹出数组,因为未定义popSize

最佳答案

您要么需要使用self.popSize要么SimpleString.popSize对其进行访问。当您在类中声明变量以便任何实例函数访问该变量时,您将需要使用self或类名(在本例中为SimpleString),否则它将将该函数中的任何变量视为局部变量该功能。
selfSimpleString之间的区别在于,使用self,您对popSize所做的任何更改都只会反射(reflect)在您实例的范围内,如果您创建SimpleString的另一个实例,那么popSize仍将是1000。如果使用SimpleString.popSize,则您对该变量所做的任何更改都将传播到该类的任何实例。

import numpy

class SimpleString():
    popSize = 1000
    displaySize = 5
    alphatbet = "abcdefghijklmnopqrstuvwxyz "

    def __init__(self):
        pop = numpy.empty(self.popSize, object)
        target = getTarget()
        targetSize = len(target)

09-09 19:34