我试图用静态变量和方法(属性和行为)在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
),否则它将将该函数中的任何变量视为局部变量该功能。self
和SimpleString
之间的区别在于,使用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)